根据另一个数据框更新数据框中的列

时间:2015-11-17 01:43:16

标签: r

我有数据框

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 

请告诉我如何实现这一目标。

4 个答案:

答案 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是行号。