R 在计算矩阵列表中的平均colMeans时,如何选择特定列?

R 在计算矩阵列表中的平均colMeans时,如何选择特定列?,r,list,matrix,sapply,R,List,Matrix,Sapply,我有一个包含类似矩阵的列表lst.mx lst.mx <- lapply(1:10, function(X, r = 20) { d = matrix(NA, nrow = r, ncol = 4, dimnames = list(NULL, c("fee", "fi", "fo", "fum"))) d[, 1] = rbinom(r, 1, .375) d[, 2] = .42 * rnorm(r, 0, 6) d[, 3] = rbinom(r, 11, c(1:11

我有一个包含类似矩阵的列表lst.mx

lst.mx <- lapply(1:10, function(X, r = 20) {
  d = matrix(NA, nrow = r, ncol = 4, dimnames = list(NULL, c("fee", "fi", "fo", "fum")))
  d[, 1] = rbinom(r, 1, .375)
  d[, 2] = .42 * rnorm(r, 0, 6)
  d[, 3] = rbinom(r, 11, c(1:11)/11)
  d[, 4] = rbinom(r, 1, .3)
  d
})

您只是指定了错误的子集。 试试这个:

lapply(lst.mx, function(x) colMeans(x[x[,1] == 0,][,2:3]))
注意:首先我将列==1子集为行==0,然后提取列2和3,最后应用colMeans。

使用匿名调用lapplyst.mx,functionx colMeansx[,2:3]rowmeansApplylst.mx,functionx colMeansx[,2:3]-谢谢!好的,那么如何正确地调节sappyllst.mx,functionx colMeansx[,2:3][x[,1]==0]?仅适用于第一列为0的值
lapply(lst.mx, function(x) colMeans(x[x[,1] == 0,][,2:3]))