如何对R中列表的元素应用均值函数

hor*_*ora 9 r list lapply

我有一个列表,我想用它lapply()来计算其元素的平均值.例如,对于列表中的第七项,我有:

>list[[7]]
 [1] 1 1 1 1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)

我的输出应该是:

> mean(temp[[7]][1:10])
[1] 1
Run Code Online (Sandbox Code Playgroud)

但是,当我lapply()在下面使用时,结果将是另一回事.我该怎么办?

> lapply(list[[7]][1:10],mean)
[[1]]
[1] 1

[[2]]
[1] 1
.
.
.
[[10]]
[1] 1
Run Code Online (Sandbox Code Playgroud)

小智 12

要获得列表的第7个元素的平均值,请使用mean(list[[7]]).获取列表中每个元素的均值lapply(list,mean).打电话给你的清单是一个非常糟糕的主意list.


Ric*_*rta 7

考虑使用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
Run Code Online (Sandbox Code Playgroud)



此外,您可能想看看该plyr包. 这个问题也很好地解释了不同的*apply函数