我有一个列表,想用lapply()
函数来计算其元素的平均值。例如,对于列表的第七个项目,我有:
>list[[7]]
[1] 1 1 1 1 1 1 1 1 1 1
我的输出应该是:
> mean(temp[[7]][1:10])
[1] 1
但是,当我像下面这样使用lapply()
时,结果会是另外一些东西。我该怎么办?
> lapply(list[[7]][1:10],mean)
[[1]]
[1] 1
[[2]]
[1] 1
.
.
.
[[10]]
[1] 1
mean(list[[7]])
。
要获取列表每个元素的平均值,请使用lapply(list,mean)
。
而将您的列表命名为list
是一个非常糟糕的主意。考虑使用sapply
代替lapply
。
# sample data
a<- 1:3
dat <- list(a, a*2, a*3)
# sapply gives a tidier output
> sapply(dat, mean)
[1] 2 4 6
> lapply(dat, mean)
[[1]]
[1] 2
[[2]]
[1] 4
[[3]]
[1] 6
plyr
包。 这个问题也很好地解释了不同的 *apply 函数。
lapply
,那么你将会对向量的每个元素取平均值。请改用lapply(list, mean)
。此外,使用list
作为变量名是一个不好的主意,因为它是一个重要的函数! - Justin