通过列应用于矩阵 - 以任何方式获取列名称?

SFu*_*n28 16 r

我在调用apply(data, 2, function(x) {...})哪里data是矩阵.有没有办法让函数知道其值存在的列的名称x?或许还有另一个功能来完成同样的任务?

jor*_*ran 26

处理此问题的一种常见方法是循环遍历列名称本身:

m <- matrix(runif(16),4,4)
colnames(m) <- letters[1:4]
sapply(colnames(m),function(x){mean(m[,x])})
        a         b         c         d 
0.4720319 0.4992337 0.5026318 0.3514267
Run Code Online (Sandbox Code Playgroud)

  • 呸,打败我5秒!我什么时候学习...先回答,然后再编辑.;-) (4认同)

Jos*_*ich 15

您可以使用sapplycolnames(data):

set.seed(21)
Data <- matrix(rnorm(10),5,2)
colnames(Data) <- c("one","two")
sapply(colnames(Data), function(x) sum(Data[,x]))
#       one       two 
#  3.987540 -2.010875 
colSums(Data)
#       one       two 
#  3.987540 -2.010875
Run Code Online (Sandbox Code Playgroud)