我有一个列表,如:
> 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)
但在这种情况下,我只有每个子列表的平均值。
答案 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)并指定平均函数。