【问题标题】:R: How do I add a column to a dataframe based on paired values in another dataframe with different length? [duplicate]R:如何根据另一个不同长度的数据框中的配对值向数据框中添加一列? [复制]
【发布时间】:2021-12-16 23:16:21
【问题描述】:

在 R 中,我尝试合并到由名为 id 的列匹配的不同长度的数据帧,但未成功。有谁知道如何解决这个问题?

输入:

df1:

id  group
1   x
2   y
3   x

df2:

id  day
1   0   
1   1   
1   2
2   0 
2   1
2   2
3   0 
3   1
3   2

期望的输出(df2 加上基于 df1 的组列):

id  day   group
1   0     x
1   1     x
1   2     x
2   0     y
2   1     y
2   2     y
3   0     x
3   1     x
3   2     x

【问题讨论】:

  • 你试过merge(df1, df2)吗?

标签: r dataframe merge tidyverse


【解决方案1】:

使用 dplyr 包中的 left_join:

库(dplyr)

数据

【讨论】:

    【解决方案2】:

    我认为带有“id”变量规范的简单合并函数效果很好

    merge(df1,df2,by="id")
    

    【讨论】:

      【解决方案3】:

      使用left_join

      library(dplyr)
      df_joined<- df2 %>%
         left_join(df1, by="id")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-26
        • 2018-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-24
        相关资源
        最近更新 更多