R 在计算矩阵列表中的平均colMeans时,如何选择特定列?
我有一个包含类似矩阵的列表lst.mxR 在计算矩阵列表中的平均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 <- 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]))