【问题标题】:Merging datasets of different lengths by Year in R在R中按年份合并不同长度的数据集
【发布时间】:2011-01-27 21:24:40
【问题描述】:

我有一个关于合并两个长度不等的数据集的非常基本的问题。一种是标准面板

ID Time 
 1   1    
 1   2  
 1   3  
 2   1  
 2   2  
 2   3  

第二组长度不等,看起来像这样

ID  Time X
 1   2   2
 2   1   3
 2   3   4

如何通过 ID 和时间将这两者结合起来,以便

ID Time  X 
 1   1   NA 
 1   2   2
 1   3   NA
 2   1   3
 2   2   NA
 2   3   4

【问题讨论】:

    标签: datetime r merge


    【解决方案1】:

    嗨,也许你应该看看合并函数中的 all.x 或 all.y 选项。

    Data1 <- data.frame(ID = rep(c(1,2), each = 3),
                        Time = rep(c(1, 2, 3), 2))
    Data2 <- data.frame(ID = c(1, 2, 2),
                        Time = c(2, 1, 3),
                        X = c(2, 3, 4))
    merge(Data2, Data1, all.y = TRUE)
      ID Time  X
    1  1    1 NA
    2  1    2  2
    3  1    3 NA
    4  2    1  3
    5  2    2 NA
    6  2    3  4
    

    或使用 plyr 函数 join 比合并更快但缺少一些选项:

    join(Data2, Data1, type = "full")
    Joining by: ID, Time
      ID Time  X
    1  1    2  2
    2  2    1  3
    3  2    3  4
    4  1    1 NA
    5  1    3 NA
    6  2    2 NA
    

    【讨论】:

      猜你喜欢
      • 2020-02-12
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 2019-07-26
      • 2021-02-28
      相关资源
      最近更新 更多