#lapply函数
#可以循环处理列表中的每一个元素
#lapply(参数):lapply(列表,函数/函数名,其他参数)
#总是返回一个列表
#sapply:简化结果
#结果列表元素长度均为1,返回向量
#结果列表元素长度相同且大于1,返回矩阵
> str(lapply)
function (X, FUN, ...)
> ?str
> x <- list(a=1:10,b=c(11,21,31,41,51))
> x
$`a`
[1] 1 2 3 4 5 6 7 8 9 10
$b
[1] 11 21 31 41 51
> lapply(x,mean)
$`a`
[1] 5.5
$b
[1] 31
> x <- 1:4
> lapply(x,runif)
[[1]]
[1] 0.5754994
[[2]]
[1] 0.3157821 0.7646459
[[3]]
[1] 0.2289793 0.1715219 0.6473963
[[4]]
[1] 0.634688171 0.326673566 0.007179751 0.687418686
> lapply(x,runif,min=0,max=100)
[[1]]
[1] 40.30112
[[2]]
[1] 31.06171 64.75319
[[3]]
[1] 45.190536 8.243788 98.328863
[[4]]
[1] 22.22585 18.63806 57.53813 54.82982
> x <- list(a=matrix(1:6,2,3),b=matrix(4:7,2,2))
> lapply(x,function(m) m[1,])
$`a`
[1] 1 3 5
$b
[1] 4 6
> x <- list(a=1:10,b=c(11,21,31,41,51))
> lapply(x,mean)
$`a`
[1] 5.5
$b
[1] 31
> sapply(x,mean)
a b
5.5 31.0
> class(sapply(x, mean))
[1] "numeric"
|
请发表评论