我有数据框
df1 ->
ID Name
1 Test1
2 Test2
3 Test3
我有另一个数据帧df2
df2 ->
ID Name
1 Char
2 Float
3 Decimal
4 String
现在我想基于df2中使用ID
的名称更新df1名称值现在我的df1输出应为
ID Name
1 Char
2 Float
3 Decimal
请告诉我如何实现这一目标。
答案 0 :(得分:4)
我们可以使用match
df1$Name <- df2$Name[match(df1$ID, df2$ID)]
或者@thelatemail提到,这可以通过merge
merge(df1["ID"], df2, all.x=TRUE)
答案 1 :(得分:2)
另一种选择:
library(qdapTools)
df1$Name <- df1$ID %l% df2
答案 2 :(得分:0)
不确定您是否在寻找除此之外的东西:
df1$Name <- df2$Name[1:3]
答案 3 :(得分:0)
使用ID
获取正确的名称。
df1$Name <- df2$Name[df1$ID]
请注意,如果df1
中的观察次数小于或等于df2
中的观察次数,则此解决方案适用,否则,您将以NA
结束。此外,ID
是行号。