我有几个包含向量的列表,我想要获得一个单独的列表,其中的元素是初始列表中向量的平均向量。
例如:两个初始列表
lt1 <- list(a = c(1,2,3), b = c(2,5,10))
lt2 <- list(a = c(3,4,5), b = c(4,5,2))
我希望获得
lt12 <- list(a = c(2,3,4), b = c(3,5,6))
我尝试使用lapply和llply,但最终我总是得到每个列表向量的平均值。
Map()
将向量合并,然后在结果列表上运行rowMeans()
。lapply(Map(cbind, lt1, lt2), rowMeans)
# $a
# [1] 2 3 4
#
# $b
# [1] 3 5 6
或者使用lapply(Map(rbind, lt1, lt2), colMeans)
的另一种方法。
mapply(function(a,b) colMeans(rbind(a, b)), lt1, lt2, SIMPLIFY=F)
可能会有所帮助。 - Rorschach