【问题标题】:How to count cells that are not NA [duplicate]如何计算不是 NA 的单元格 [重复]
【发布时间】:2018-04-18 23:32:35
【问题描述】:

我正在尝试为每个名字取平均分。我想将分数值相加(省略NAs),然后除以值的数量。我已经得到了总和,但是正在努力解决如何除以非“NA”的值的数量。

下面是一些示例代码:

names <- c("d", "e", "f", "g")
score.a.ALL <- c(1, 2, NA, 3)
score.b.ALL <- c(NA, 4, 5, 6)
score.c.ALL <- c(NA, NA, NA, 1)

dat <- data.frame(names, score.a.ALL, score.b.ALL, score.c.ALL)
dat$goal <- c(1, 3, 5, 3.3)

scoreALL <- dat[, grep("score\\.[^.]+\\.ALL", colnames(dat))]

dat$average <- rowSums(scoreALL, na.rm=T)/ ncol(scoreALL[,is.na==F])

目标列是平均值应该是什么。任何帮助深表感谢!谢谢!

【问题讨论】:

    标签: r


    【解决方案1】:

    已经实现了一个用于行表示的函数:rowMeans。将na.rm=TRUE 设置为省略NA

    > dat$goal <- rowMeans(dat[-1], na.rm = TRUE)
    > dat
      names score.a.ALL score.b.ALL score.c.ALL     goal
    1     d           1          NA          NA 1.000000
    2     e           2           4          NA 3.000000
    3     f          NA           5          NA 5.000000
    4     g           3           6           1 3.333333
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      相关资源
      最近更新 更多