【问题标题】:How to add New Column from another Dataframe in R corresponding to the particular samples in First Data frame如何从 R 中的另一个数据框中添加新列,对应于第一个数据框中的特定样本
【发布时间】:2020-04-03 13:26:58
【问题描述】:

我有两个数据框 DF1 和 DF2。

DF1    Names  B.P   Age Sex
        Ted    120  23   M
        Sed    110   24  F
        Med    123    23  M

DF2   Names  Income
       Ted    1000
        Sed    2000
        Fed    3000
        Med    1000

DF1 包含针对每个参与者姓名的三个变量。 (DF1$名称)。我想要的只是将列 (DF2$Income) 从 DF2 添加到 DF1 但只应添加 Ted Sed 和 Med 的收入数据。我的意思是只应添加新列中的数据以对应 DF1 中的名称。我想要以下输出。

DF3



Names   B.P Age   Sex   Income
        Ted    120  23   M    1000
        Sed    110   24  F    2000
        Med    123    23  M   1000

输入:

df1 <- structure(list(Names = c("Ted", "Sed", "Med"), B.P = c(120, 110, 
123), Age = c(23, 24, 23), Sex = c("M", "F", "M")), class = "data.frame", row.names = c(NA, 
-3L))

df2 <- structure(list(Names = c("Ted", "Sed", "Fed", "Med"), Income = c(1000, 
2000, 3000, 1000)), class = "data.frame", row.names = c(NA, -4L
))

【问题讨论】:

    标签: r dataframe bioinformatics


    【解决方案1】:

    这是dplyr 解决方案:

    library(dplyr)
    DF3 <- left_join(df1, df2, by = "Names")
    

    这是data.table 解决方案:

    library(data.table)
    Df3 <- merge(df1, df2, by = "Names")
    

    【讨论】:

      【解决方案2】:

      在您的情况下,由于有一个公共列,因此基本 R 合并就足够了:

      merge(df1,df2)
        Names B.P Age Sex Income
      1   Med 123  23   M   1000
      2   Sed 110  24   F   2000
      3   Ted 120  23   M   1000
      

      【讨论】:

        猜你喜欢
        • 2021-12-26
        • 2021-06-06
        • 2016-02-03
        • 2016-03-28
        • 2019-08-19
        • 2022-01-03
        • 2020-12-18
        • 2022-11-02
        • 1970-01-01
        相关资源
        最近更新 更多