apply over matrix by column - any way to get column name?
I'm calling apply(data, 2, function(x) {...}) where data is 开发者_如何学Ca matrix. Is there any way for the function to know the name of the column whose values are present in x? Or perhaps there's another function to accomplish the same task?
One common way to deal with this is to loop over the column names themselves:
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
You can use sapply on colnames(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
加载中,请稍侯......
精彩评论