- 向量初始化
z=c(1:2)
z=c()
z[1]=1
z[2]=2
z=rep(0,1000)
s=seq(1,10,1)
s=seq(1,10,length=10)
s:1,2,3,4,5,6,7,8,9,10
- 内积
crossprod(a,b) #把a转置,然后和b乘
#相当于
t(a)%*%b
-
R中运算优先级冒号(:)比加减乘除都高,索引时不加括号会发生很多问题
-
统计分布每一种分布有四个函数:d――density(密度函数 pdf),p――分布函数(cdf),q――分位数函数,r――随机数函数。比如,正态分布的这四个函数为dnorm,pnorm,qnorm,rnorm。下面我们列出各分布后缀,前面加前缀d、p、q或r就构成函数名:norm:正态,t:t分布,f:F分布,chisq:卡方(包括非中心) unif:均匀,exp:指数,weibull:威布尔,gamma:伽玛,beta:贝塔 lnorm:对数正态,logis:逻辑分布,cauchy:柯西, binom:二项分布,geom:几何分布,hyper:超几何,nbinom:负二项,pois:泊松 signrank:符号秩,wilcox:秩和,tukey:学生化极差
-
var,sd计算的都是无偏的方差,标准差(分母n-1)
-
在array上,沿margin方向,依次调用FUN。返回值为vector。margin表示数组引用的第几维下标(即array[index1, index2, …]中的第几个index),1对应为1表示行,2表示列,c(1,2)表示行列
apply(array, margin, FUN, ...)
m <- matrix(c(1:10), nrow=2)
> m
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
> apply(m, 1, sum)
[1] 25 30
> apply(m, 2, sum)
[1] 3 7 11 15 19
- lapply
lapply(list, FUN, …)
在list上逐个元素调用FUN。可以用于list,dataframe上
> lst <- list(a=c(1:5), b=c(6:10))
> lapply(lst, mean)
$a
[1] 3
$b
[1] 8
- sapply
sapply(list, FUN, …, simplify, USE.NAME=TRUE)
比lapply多了一个simplify参数。如果simplify=FALSE,则等价于lapply。否则,在上一种情况的基础上,将lapply输出的list简化为vector或matrix。
> lst <- list(a=c(1:5), b=c(6:10))
> sapply(lst, mean)
a b
3 8
- mapply
mapply(FUN, …, MoreArgs=NULL, SIMPLIFY=TRUE, USE.NAMES=TRUE)
mapply是多变量版的sapply,参数(…)部分可以接收多个数据,mapply将FUN应用于这些数据的第一个元素组成的数组,然后是第二个元素组成的数组,返回值是vector或matrix
mapply(sum, list(a=1,b=2,c=3), list(a=10,b=20,d=30))
a b c
11 22 33
> mapply(function(x,y) x^y, c(1:5), c(1:5))
[1] 1 4 27 256 3125
> mapply(function(x,y) c(x+y, x^y), c(1:5), c(1:5))
[,1] [,2] [,3] [,4] [,5]
[1,] 2 4 6 8 10
[2,] 1 4 27 256 3125