【问题标题】:Merging issue on R [duplicate]R上的合并问题[重复]
【发布时间】:2020-11-01 12:26:07
【问题描述】:

我正在尝试根据 ID 列将包含大约 5k 行 (df1) 的 100 列数据集与另一个数据集 (df2$X) 的单列合并。

例如

df1:

Id    Price   Animals 
2     1       Dog
3     1       Cat
4     3       Dog
5     4       Cat
6     5       Mouse
10    9       Cat
16    0       Cat
14    4       Cat

df2: 
Id    X   
2     Kiwi      
5     Banana    
6     Apple      
7     Berries      
8     Mango      
10    Melon  

生成的数据集应该是:


Id    Price   Animals  X
2     1       Dog      Kiwi
3     1       Cat      NA
4     3       Dog      NA
5     4       Cat      Banana
6     5       Mouse    Apple
10    9       Cat      Melon
16    0       Cat      NA
14    4       Cat      NA

我试过了:

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

但这似乎不起作用。

谢谢!

【问题讨论】:

    标签: r dataframe merge


    【解决方案1】:

    如果您在两个数据框中都有重复的列,您可以只选择merge 之前需要的列。

    df3 <- merge(df1, df2[c('Id', 'X')], by= "Id", all.x= TRUE)
    

    【讨论】:

      【解决方案2】:
      library(tidyr)
      library(dplyr)
      df1 %>% left_join(df2)
      Joining, by = "Id"
      # A tibble: 8 x 4
           Id Price Animals X     
        <dbl> <dbl> <chr>   <chr> 
      1     2     1 Dog     Kiwi  
      2     3     1 Cat     NA    
      3     4     3 Dog     NA    
      4     5     4 Cat     Banana
      5     6     5 Mouse   Apple 
      6    10     9 Cat     Melon 
      7    16     0 Cat     NA    
      8    14     4 Cat     NA    
      > 
      

      【讨论】:

      • 谢谢!但它不适合我?
      • 你有什么错误吗?
      • 它根本不显示 df1 中的附加列。
      • 不确定这怎么可能,您是否在加入前选择了特定的列?
      • df1$X
      猜你喜欢
      • 2020-08-29
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多