R 如何计算列表矩阵的平均值?
我有一个关于平均列表矩阵的复杂计算问题 矩阵看起来像R 如何计算列表矩阵的平均值?,r,list,matrix,statistics,R,List,Matrix,Statistics,我有一个关于平均列表矩阵的复杂计算问题 矩阵看起来像 mat <- matrix(list(), 100, 10) [[1]] [1] 1.21.33 1.50 [[2]] [1] 2.1.9.4.5 [[3]] [1] 0.1 0.4 1.5 [[100]] [1] 0.8 0.69 1.42 我希望对100个列表中的所有第一个元素取平均值。换句话说,就是计算(1.21+2.1+0.1+…+0.8)/100。类似地,它可以应用于所有第二个元素,如(1.33+1.9+0.4+…+0.6
mat <- matrix(list(), 100, 10)
[[1]]
[1] 1.21.33 1.50
[[2]]
[1] 2.1.9.4.5
[[3]]
[1] 0.1 0.4 1.5
[[100]]
[1] 0.8 0.69 1.42
我希望对100个列表中的所有第一个元素取平均值。换句话说,就是计算(1.21+2.1+0.1+…+0.8)/100。类似地,它可以应用于所有第二个元素,如(1.33+1.9+0.4+…+0.69)/100。还有第三个要素。。。如果可能,可以将此程序应用于mat中的所有10列
如何使用lappy或sapply函数实现这一点?使用
dplyr
函数bind\u cols绑定mat[,i]
中的每个列表,
“拿排”的意思是
res_in_cols <- apply(mat, 2, function(x) rowMeans(dplyr::bind_cols(x)))
res\u in\u cols使用dplyr
函数bind\u cols绑定mat[,i]
中的每个列表,
“拿排”的意思是
res_in_cols <- apply(mat, 2, function(x) rowMeans(dplyr::bind_cols(x)))
res\u in\u cols也许您可以尝试colMeans
+rbind
以及apply
as.matrix(asplit(apply(mat, 2, function(x) colMeans(do.call(rbind, x))), 2))
也许您可以尝试colMeans
+rbind
以及apply
as.matrix(asplit(apply(mat, 2, function(x) colMeans(do.call(rbind, x))), 2))
OP位于列_sum/nrow(mat)之后。另外,我尝试了这个方法,但在取消列出它们之后,它并没有给出列的平均值-也许我误解了什么。@Suren我猜OP想为每个单元格获得一个长度为3的数组是的,我认为你是正确的。我想我没有把这个问题读清楚。OP在sum/nrow列(mat)之后。另外,我尝试了这个方法,但在取消列出它们之后,它并没有给出列的平均值-也许我误解了什么。@Suren我猜OP想为每个单元格获得一个长度为3的数组是的,我认为你是正确的。我想我没有很好地阅读这个问题。最好举个小例子。例如,一个较小的矩阵。类似于Thomas的尝试,我认为应用(mat,2,function(x)colMeans(do.call(rbind,x))
应该适合您。最好给出一个小例子。例如,一个较小的矩阵。类似于Thomas的尝试,我认为应用(mat,2,function(x)colMeans(do.call(rbind,x))
应该适合您。