首页 文章

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

提问于
浏览
1

我有数据帧

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

    我们可以用 match

    df1$Name <- df2$Name[match(df1$ID, df2$ID)]
    

    或者正如@thelatemail所提到的,这可以通过 merge 来解决

    merge(df1["ID"], df2, all.x=TRUE)
    
  • 0

    另外一个选项:

    library(qdapTools)
    df1$Name <- df1$ID %l% df2
    
  • 2

    不确定你是否在寻找除此之外的东西:

    df1$Name <- df2$Name[1:3]
    
  • 4

    使用 ID 获取正确的名称 .

    df1$Name <- df2$Name[df1$ID]

    请注意,如果 df1 中的观测数量小于或等于 df2 中的观测数量,则此解决方案适用,否则,最终将使用 NA . 此外, ID 是行号 .

相关问题