r - 忽略dplyr行总和中的NA

标签 r sum dplyr

在dplyr中是否有一种优雅的方式将NA处理为0(na.rm = TRUE)?

data <- data.frame(a=c(1,2,3,4), b=c(4,NA,5,6), c=c(7,8,9,NA))

data %>% mutate(sum = a + b + c)

a  b  c sum
1  4  7  12
2 NA  8  NA
3  5  9  17
4  6 NA  NA

but I like to get

a  b  c sum
1  4  7  12
2 NA  8  10
3  5  9  17
4  6 NA  10

即使我知道在许多其他情况下这都不是理想的结果

最佳答案

您可以使用此:

library(dplyr)
data %>% 
  #rowwise will make sure the sum operation will occur on each row
  rowwise() %>% 
  #then a simple sum(..., na.rm=TRUE) is enough to result in what you need
  mutate(sum = sum(a,b,c, na.rm=TRUE))

输出:
Source: local data frame [4 x 4]
Groups: <by row>

      a     b     c   sum
  (dbl) (dbl) (dbl) (dbl)
1     1     4     7    12
2     2    NA     8    10
3     3     5     9    17
4     4     6    NA    10

关于r - 忽略dplyr行总和中的NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33806575/

相关文章:

r - 由annotation_custom使用geom_bar图创建的移动表

R vs Pentaho Spoon 作为 ETL 工具

java - 如何在 Groovy 中使用 Java 包

excel - 如何在excel中使用IF和SUM来计算连续的唯一条目?

R:dplyr 总结,仅对唯一值求和

r - 使用 R 编写 .mat 文件没有给出正确的输出?

r - 如何在 R 中构造和重新编码杂乱的分类数据?

c# - 从 C# 中的 DataColumn 值中获取总和

r - 如果按特定顺序包含多个变量,则进行子集化

R 为什么 dplyr 按组计算唯一值 (n_distinct) 的速度比 data.table (uniqueN) 更快?