apply over matrix by column - any way to get column name?

前端 未结 2 1722
忘掉有多难
忘掉有多难 2020-12-09 04:29

I\'m calling apply(data, 2, function(x) {...}) where data is a matrix. Is there any way for the function to know the name of the column whose valu

相关标签:
2条回答
  • 2020-12-09 04:41

    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
    
    0 讨论(0)
  • 2020-12-09 04:52

    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
    
    0 讨论(0)
提交回复
热议问题