r - 如何使用来自另一个数据框的信息更新数据框列
问题描述
我有2个数据框:
df1 = data.frame(Bird_ID = c(1:6), Sex = c("Male","Female","Male","Male","Male","UNK"))
df2 = data.frame(Bird_ID = c(6), Seen_sex = c("Female"))
df1
# Bird_ID Sex
# 1 Male
# 2 Female
# 3 Male
# 4 Male
# 5 Male
# 6 UNK
df2
# Bird_ID Seen_Sex
# 6 Female
- 我的第一个数据框 (
df1
) 是我的数据库,其中包含所有已知性别的鸟类。 - 我的第二个数据框 (
df2
) 是“更新程序”
如何使用来自的信息更新鸟6?所以 df1 中的“UNK”现在应该变成“Female”,所有其他鸟都保持不变。df1
df2
解决方案
使用dplyr
>=0.5
版本:
> merge(df1, setNames(df2, c('Bird_ID', 'Sex')), on='Bird_ID', all=T) %>% distinct(Bird_ID, .keep_all=T)
Bird_ID Sex
1 1 Male
2 2 Female
3 3 Male
4 4 Male
5 5 Male
6 6 Female
>
推荐阅读
- javascript - vue.js 中 v-for 中的模板格式
- python - Pyopengl 读取 obj 文件
- flutter - 如何检查表是否为空?
- angular - 未定义标识符“更新”。'Changelog[]' 不包含这样的成员
- microsoft-graph-api - 如何使用 Microsoft delta 查询处理已删除的重复主事件
- c# - 引擎盖下的 OpenCover
- c# - appsetting.development.json 是由 .net core 3.1 中的代码提取的注释
- terminal - 如何自定义 iTerm 终端以显示我(主)?
- docker - 如何使用 redis-rs 从 Docker 容器内部连接到 Redis?
- c - 为什么我得到这个单一的输出错误?