46. 求余数
“%%”是求余
“%/%”是整除
47. 威布尔分布
x <- seq(0,5,0.01)
d <- dweibull(x, 2, 1)
plot(x, d, type = "l")
48. 询问对话框
winDialog("yesno", "Is it OK to delete file?")

49. read.table函数设置各列数据类型
read.table("filename", colClasses=c("numeric", "character", ....))
50. 绘制圆形
library(plotrix)
draw.circle
plot(1:5,seq(1,10,length=5),type="n",xlab="",ylab="",main="Testdraw.circle")
draw.circle(2,4,c(1,0.66,0.33),border="purple",col=c("#ff00ff","#ff77ff","#ffccff"),lty=1,lwd=1)
draw.circle(2.5,8,0.6,border="red",lty=3,lwd=3)
draw.circle(4,3,0.7,border="green",lty=1,lwd=1)
draw.circle(3.5,7,0.8,border="blue",lty=2,lwd=2)

51. Kronecker积
base包中的kronecker()函数可以计算
52. 用paste函数合并字符串
A <- c('a','b')
B <- c('c','d')
paste(A,B,sep = '')
[1] "ac" "bd"
53. 用lm函数做双曲线回归
现在回归方程如下:Y=A+B/X
lm(y~I(1/x)),R命令里带表达式,需要用I()。
54. 极坐标跟直角坐标转换
library(IDPmisc)
#极坐标转成直角坐标
xy <- clock2cart(rho=rep(1,33),phi=seq(0,to=360,len=33),circle=360)
#直角坐标转成极坐标
rhophi <- cart2clock(xy$x,xy$y,circle=360)
55. attach和detach函数的解释
使用attach(dataframe)以后,调用该数据就不用输入dataframe的名字了,可以让代码更简洁,比如以前是dataframe$gdp,现在gdp就能调用了。使用detach(dataframe)则可以取消上面的效果。
但是,不推荐这样使用,因为会带来不可预测的错误,例如dataframe中有和全局变量同名的变量时,可能会出错。
56. 使用unique函数删除重复数据
A <- c(rep(1,10),rep(2,10),rep(3,10))
unique(A)
[1] 1 2 3
57. 用optimize和nlm函数求极值点
base包的optimize函数可以求一元函数极小值。
例子:
求(1-x)^2+4极小值。
f=function(x)(1-x)^2+4
optimize(f,c(0,2))
minimum
[1]1
objective
[1] 4
nlm函数可以求多元函数极小值。
例子:
求100*(x1-x2^2)^2+(1-x1)^2的极小值
>f=function(x){f<-c(10*(x[2]-x[1]^2), 1-x[1]);sum(f^2)}
> nlm(f,c(-1.5,1))
minimum
[1] 3.983443e-12 #极小值estimate
[1] 0.999998 0.999996 #极小值点
gradient[1]−3.358886e−07 1.721028e−07code
[1] 1
$iterations
[1] 23
58. 求矩阵的秩
qr()$rank
59. 用segments连接图中的点
x <-stats::runif(12); y <- stats::rnorm(12)
i <- order(x, y);x <- x[i]; y <- y[i]
plot(x, y, main ="arrows(.) and segments(.)")
## draw arrows frompoint to point :
s <-seq(length(x)-1) # one shorter than data
arrows(x[s], y[s],x[s+1], y[s+1], col= 1:3)
s <-s[-length(s)]
segments(x[s], y[s],x[s+2], y[s+2], col= 'pink')
60. 合并两个数组
按行合并rbind()
按列合并cbind()