r - 合并R中的互补列
问题描述
我正在为一个大学项目清理我的数据,我有两个变量,DidVote 和 WillVote,指示该人投票给谁(如果他们在实际选举中投票)以及他们会投票给谁(如果他们这样做了不在选举中投票)。这两列显然是互补的,这意味着如果 DidVote 有一些价值,WouldVote 是 NA,反之亦然。我想将这两个变量合并为一个,这意味着我想得到第三列之类的东西:
DidVote WouldVote Vote
x NA x
NA z z
NA y y
y NA y
我试图做以下事情:
data$Vote <- paste(data$DidVote,data$WouldVote)
但我最终得到的是:
DidVote WouldVote Vote
x NA x NA
NA z NA z
NA y NA y
y NA y NA
如何合并这两列,以便新变量从两个变量 DidVote 和 WillVote 中的每一个中获取非 NA 值?
解决方案
我们可以用coalesce
library(dplyr)
df1 %>%
mutate(Vote = coalesce(DidVote, WouldVote))
# DidVote WouldVote Vote
#1 x <NA> x
#2 <NA> z z
#3 <NA> y y
#4 y <NA> y
数据
df1 <- structure(list(DidVote = c("x", NA, NA, "y"), WouldVote = c(NA,
"z", "y", NA), Vote = c("x", "z", "y", "y")), class = "data.frame",
row.names = c(NA, -4L))
推荐阅读
- node.js - Steam Api 商店销售
- java - Short.MAX_VALUE +1 错误:不兼容的类型:从 int 到 short 的可能有损转换
- reactjs - 从 React 应用程序访问运行时属性
- azure - Azure 基础结构创建方法
- python - Facebook 预言家在拟合模型时出错
- node.js - 从 Firebase 函数 (Node.js) 更新 Stripe 客户
- c++ - C++、MinGW、Windows:使用 std::cout 打印数字非常慢
- nginx - 如何轻松访问 nginx 反向代理服务器中的所有子文件夹和文件?
- html - CSS `perspective` 结合 `rotate` 使 svg 在 Firefox 中非常模糊和像素化,在 chrome 中很好
- xml - 使用 Breathe、Exhale 和 Doxygen 构建 Sphinx 文档会导致 XML 错误