【发布时间】:2020-12-28 19:19:08
【问题描述】:
我有一个 data.frame ids 的索引列是人员 ID 号。
ID
PA1
PA2
PA3
PA4
PA5 etc
我想从其他 2 个数据帧中提取每个人的年龄和性别,df1 和 df2 有详细信息(带有不同的标题),每个都只包含总样本人口的一部分,尽管有可能有些重叠,但 ids 包含的行数比 df1 和 df2 组合的多:
df1
ID Sex Age Mode
PA1 M 34 HD
PA3 F 45 PD
和df2
ID Gender Age
PA4 M 67
PA3 F 45
PA2 M 65
总共有大约 1700 行数据。我想从df1 和df2 中获取Sex 或Gender 和Age,并将它们与正确的ID 放在ids data.frame 的新列中,所以我明白了:
ID Age Sex
PA1 34 M
PA2 65 M
PA3 etc...
PA4
PA5
df1 和df2 都包含我在ids 中不需要的其他数据列,所以我不认为我想使用left_join 或合并。
我正在考虑用dlplyr做这样的事情:
ids = ids%>%
mutate("Sex" = case_when(df1$Gender != "" ~df1$Gender, TRUE ~"" ))
如果为空则查看df2
但意识到这与正确 ID 的值不匹配。 ID当前在不同的data.frames中的顺序不同
【问题讨论】:
-
我可以使用
apply或if语句吗?
标签: r dataframe dplyr merge conditional-statements