【问题标题】:R - counting with NA in dataframe [duplicate]R - 在数据帧中使用 NA 计数 [重复]
【发布时间】:2018-06-27 19:42:48
【问题描述】:

可以说我在 R 中有这个数据框

df <- read.table(text="
   id      a        b        c
1  42      3        2       NA
2  42     NA        6       NA
3  42      1       NA        7", header=TRUE)

我想将所有列计算为一,所以结果应该是这样的。

   id      a        b        c        d
1  42      3        2       NA        5
2  42     NA        6       NA        6
3  42      1       NA        7        8

我下面的代码不起作用,因为存在 NA 值。请注意,我必须选择我想要计算的列,因为在我的真实数据框中我有一些我不想一起计算的列。

df %>%
  mutate(d = a + b + c)

【问题讨论】:

    标签: r dataframe na


    【解决方案1】:

    您可以为此使用 rowSums,它有一个 na.rm 参数来删除 NA 值。

    df %>% mutate(d=rowSums(tibble(a,b,c), na.rm=TRUE))
    

    或者不使用 dplyr,只使用基础 R。

    df$d <- rowSums(subset(df, select=c(a,b,c)), na.rm=TRUE)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 2012-12-31
      • 1970-01-01
      • 2018-10-12
      • 2013-04-02
      相关资源
      最近更新 更多