r - 存在 NA 时将数据从一列移动到另一列
问题描述
我有以下数据:
library(dplyr)
d <- data_frame(
unique = c(1,2,3,4),
lat = c(NA, 87.6, 78.6, 67.7),
latitude= c(34.5, NA, 45.6, 34.8))
我想做的是,当纬度中有一个“NA”时(例如,在第 1 列中,“纬度”有一个 NA),则取纬度的值。所以我最终会得到一个名为 'latitude_new' 的新列,看起来像(34.5, 87.6, 45.6, 34.8)
.
我确信这可以使用 dplyr 中的 'mutate 来完成,我只是不太确定如何?
解决方案
使用dplyr::coalesce
第一个非缺失值替换所有 NA
library(dplyr)
d %>% mutate(latitude_new = coalesce(lat,latitude))
# A tibble: 4 x 4
unique lat latitude latitude_new
<dbl> <dbl> <dbl> <dbl>
1 1 NA 34.5 34.5
2 2 87.6 NA 87.6
3 3 78.6 45.6 78.6
4 4 67.7 34.8 67.7
推荐阅读
- python - 如何从 whl 文件安装 pip
- python - Python 在 for 循环期间冻结
- android - 本地通知处理方法调用失败
- sql-server - 是否有将列命名为特定名称的规则?
- testing - 在没有 UI 交互的情况下设置值。赛普拉斯应用程序操作
- php - 为什么 DOMDocument 会弄乱 unicode 不间断空格
- java - 即使我使用的是 Locale.US,点也会返回 MisMatch 异常
- r - 如何根据具有条件的两个列删除重复项?
- windows - 是否存在 ReadProcessMemory 失败的情况?
- ethereum - 检测 MetaMask 注销(以太坊)