如何在R中列出列表中的元素的平均值

时间:2014-05-30 11:22:31

标签: r

我有一个列表,如:

> head(mylist)
[[1]]
 [1] 0.000 0.067 0.400 0.733 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
[[2]]
 [1] 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.400 0.867 1.000
[[3]]
 [1] 0.000 0.000 0.000 0.000 0.000 0.000 0.133 0.467 0.933 1.000 1.000 1.000 1.000
[[4]]
 [1] 0.267 0.600 0.933 0.933 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000

我想构建一个新的向量,其中包含每个子列表元素的元素明确均值,就像在第一个位置应该有

的结果
mean(c(mylist[[1]][1], mylist[[2]][1], mylist[[3]][1], mylist[[4]][1])). 

我认为应该是这样的:

lapply(mylist, mean)

但在这种情况下,我只有每个子列表的平均值。

2 个答案:

答案 0 :(得分:2)

您可以将元素组合到矩阵中并使用colMeans

mylist <- list(1:5, 1:5, 1:5)

colMeans(do.call(rbind, mylist))
# [1] 1 2 3 4 5

答案 1 :(得分:0)

这也应该适合你:

apply(X=as.data.frame(mylist),MARGIN=1,FUN=mean)

基本上,您在数据框中转换列表,然后调用函数apply并使用所需的边距(对于行为1,在本例中为2,对于列为2)并指定平均函数。