我正在尝试将一列中的数字与另外两列中的数字相匹配。当仅匹配单个列时,我可以做到这一点,但在扩展到两列时会遇到问题。这是我正在做的事情:
我有 2 个数据框,df1:
number value
1
2
3
4
5
和df2:
number_a number_b value
3 3
1 5
5 1
4 2
2 4
我想要做的是将df1中的“number”列匹配到df2中的“number_a”或number_b”,然后将df2中的“value”插入df1的“value”,将结果df1设为:
number value
1 5
2 4
3 3
4 2
5 1
我的方法是使用
df1$value <- df2$value[match(df1$number, df2$number_a)]
或者
df1$value <- df2$value[match(df1$number, df2$number_b)]
分别产生 df1
number value
1 NA
2 NA
3 3
4 NA
5 1
和
number value
1 5
2 4
3 NA
4 2
5 NA
但是,我似乎无法使用这种方法填写 df1 中的所有“值”列。如何一举将“number”与“number_a”和“number_b”匹配。我试过了
df1$value <- df2$value[match(df1$number, df2$number_a:number_b)]
但这没有用。
谢谢!