【问题标题】:summing across columns with missing values in a data.frame在 data.frame 中对具有缺失值的列求和
【发布时间】:2014-02-19 16:44:47
【问题描述】:

我想获取具有最高值的列的索引。但是,我不知道如何处理缺失值以进行正确计算。 NA 应省略(=在求和过程中忽略)并且不转换为“0”。

x=rep(NA,3); y=c(NA,0,-1); z=c(0, rep(NA,2))
data=cbind(x,y,z)

     x  y  z
[1,] NA NA  0
[2,] NA  0 NA
[3,] NA -1 NA

我想获取具有最高值的列的索引。在上面的示例中,它是[,3]。 但是功能

   which.max(colSums(!is.na(data)))

apply(data,2,sum, na.rm=T)

不要产生预期的输出。

任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: r sum dataframe na


    【解决方案1】:

    可以这样确定非缺失值列中总和最大的列的列索引:

    dataAvailIdx <- which(apply(data,2,function(x) any(!is.na(x))))
    dataAvailIdx[which.max(colSums(data[,dataAvailIdx],na.rm=TRUE))]
    

    【讨论】:

    • 感谢您的回复和帮助!
    猜你喜欢
    • 2012-03-29
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多