r - 对 2 列求和,忽略 NA,除非两者都是 NA
问题描述
我尝试将 2 列与一些NA
. 有很多论坛问题,例如我的第一个问题:如何求和和忽略NA
,但现在我确实希望它NA
在两列都NA
在特定行中时返回。这是一个例子:
df<-data.table(x = c(1,2,NA),
y = c(1,NA,NA))
> df
x y
1 1
2 NA
NA NA
我想要这个:
x y final
1 1 2
2 NA 2
NA NA NA
我尝试了以下方法:
df$sum<-rowSums(df[,c("x", "y")], na.rm=TRUE)
df$final<-ifelse (is.na(df$x) && is.na(df$y) , NA,
ifelse (is.na(df$x) | is.na(df$y), df$sum,
ifelse (!is.na(df$x) && !is.na(df$y), df$sum)))
但这并没有返回我想要的..有人可以帮我..吗?
注意:有人说这是重复的,因为我要求忽略 NA,但这些问题并没有回答我的主要问题:2 x 应该如何NA
让我NA
而不是 0
解决方案
我用了以下。即使有 NA,它也会给出总和,但当所有求和的元素都是 NA 时返回 NA。
rowSums(df, na.rm = TRUE) * NA ^ (rowSums(!is.na(df)) == 0)
推荐阅读
- java - Oracle 数据库与 Android Studio 的连接
- docker - 有没有办法从 CI 过程中在 docker 容器中生成的图像中提取文件返回到 GITLAB 存储库
- python - Python Numpy 加性高斯白噪声函数
- uber-api - Ubereats:如何获取已完成订单的列表
- python - 相关矩阵不包括给定数据框中的所有特征
- javascript - 元素后的垂直菜单在悬停时移动到下一个 li 并通过平滑过渡激活
- node.js - 我可以在用户集合中查找时匹配来自 userdetail 的数组数据吗
- java - Prime faces 表格行扩展默认值
- visual-studio-code - 如何缩小此屏幕?
- mysql - 如何将 MySQL JS> 更改为仅 MYSQL?