【问题标题】:How to append a single column from 1 data frame to another data frame based on group如何基于组将一个数据帧中的单列附加到另一个数据帧
【发布时间】:2021-07-16 01:38:06
【问题描述】:

我有 2 个数据框 (df1,df2),我想根据采购材料编号将 df2 中的 1 列附加到 df1。但是,由于重复,df1 与 df2 相比具有更多行,我想保留重复并将 df2 中的值重新分配给 df1 中的重复。这就是我的意思

df1:

document number: 
111
111
122
133

df2:

document_number value
133              A
122              B  
111              C

我想要什么

df3=

document_number value
111             C
111             C  
122             B
133             A

【问题讨论】:

    标签: r dataframe dplyr


    【解决方案1】:

    我们可以做一个左连接

    library(dplyr)
    df1 %>%
       left_join(df2, by = 'document number')
    

    或使用data.table

    library(data.table)
    setDT(df1)[df2,  value := value, on = .(`document number`)]
    

    【讨论】:

    • 如果分组变量在 2 个 DF 中有不同的名称怎么办?另外,我不想附加 DF2 中的所有其他列(不是 OG 发布的),只是一个变量,即“值”
    • @AJJebelli 然后你使用c("document number1" = "document number2")
    • 如何只追加一列? @akrun
    • 我只想将值列从 Df2 追加到 DF1,DF2 中还有其他列我不想追加到 DF1
    • @AJJebelli 在加入之前将“DF2”中的列子集,即df1 %>% left_join(df1 %>% select(document number, value), by = 'document number')
    猜你喜欢
    • 2018-02-23
    • 2020-03-13
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    相关资源
    最近更新 更多