r - 合并两列维护缺失值
问题描述
我正在尝试添加两列。我的数据框是这样的:
data <- data.frame(a = c(0,1,NA,0,NA,NA),
x = c(NA,NA,NA,NA,1,0),
t = c(NA,2,NA,NA,2,0))
我想添加一些这样的列:
yep <- cbind.data.frame( data$a, data$x, rowSums(data[,c(1, 2)], na.rm = TRUE))
但是输出看起来像这样:
> yep
data$a data$x rowSums(data[,c(1, 2)], na.rm = TRUE)
1 0 NA 0
2 1 NA 1
3 NA NA 0
4 0 NA 0
5 NA 1 1
6 NA 0 0
我想要这样的输出:
> yep
data$a data$x rowSums(data[,c(1, 2)], na.rm = TRUE)
1 0 NA 0
2 1 NA 1
3 NA NA NA
4 0 NA 0
5 NA 1 1
6 NA 0 0
如果列仅包含 NA 值,我想保留 NA 值。
我怎么能做到这一点?
解决方案
基数 R:
data <- data.frame("a" = c(0,1,NA,0,NA,NA),
"x" = c(NA,NA,NA,NA,1,0),
"t" = c(NA,2,NA,NA,2,0)
)
yep <- cbind.data.frame( data$a, data$x, rs = rowSums(data[,c(1, 2)], na.rm = TRUE))
yep$rs[is.na(data$a) & is.na(data$x)] <- NA
yep
推荐阅读
- reactjs - react-mathjax 渲染两次。我该如何解决?
- c - 在switch语句之前输入字符串并使用switch语句比较c中的字符串
- vue.js - 当我动态添加选择框时,如何使 select2 在 vue js 中可用?
- django-channels - 如何摆脱“僵尸”频道
- mongodb - 有没有办法使用 MongoDB Realm 离线验证 android 应用程序?
- github - GitHub - 获取一个月内评论或提交任何内容的用户
- cmake - 将 g++ 开关转换为 CMAKE 的问题
- android-dialer - Android自定义拨号器 - 未接来电的实现缺失?
- java - 类型推断因方法引用而失败
- zabbix - 如何为连续 3 个 Windows 登录失败事件创建警报?