我有数据帧
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
请让我知道如何实现这一目标 .
我们可以用 match
match
df1$Name <- df2$Name[match(df1$ID, df2$ID)]
或者正如@thelatemail所提到的,这可以通过 merge 来解决
merge
merge(df1["ID"], df2, all.x=TRUE)
另外一个选项:
library(qdapTools) df1$Name <- df1$ID %l% df2
不确定你是否在寻找除此之外的东西:
df1$Name <- df2$Name[1:3]
使用 ID 获取正确的名称 .
ID
df1$Name <- df2$Name[df1$ID]
请注意,如果 df1 中的观测数量小于或等于 df2 中的观测数量,则此解决方案适用,否则,最终将使用 NA . 此外, ID 是行号 .
df1
df2
NA
4 回答
我们可以用
match
或者正如@thelatemail所提到的,这可以通过
merge
来解决另外一个选项:
不确定你是否在寻找除此之外的东西:
使用
ID
获取正确的名称 .df1$Name <- df2$Name[df1$ID]
请注意,如果
df1
中的观测数量小于或等于df2
中的观测数量,则此解决方案适用,否则,最终将使用NA
. 此外,ID
是行号 .