datetime - 在R中按年份合并不同长度的数据集

标签 datetime r merge

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

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

最佳答案

您好,也许您应该查看合并函数中的 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 ,它比 merge 更快,但缺少一些选项:

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

关于datetime - 在R中按年份合并不同长度的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4822048/

相关文章:

java - 如何在网络请求中将日期格式化为字符串

从 MYSQL 结果建立链接的 PHP 脚本?

r - 获取列表对象的名称,然后将该名称添加为每个列表的新列

git-svn:有好的分支和 merge 模式吗?

arrays - Perl:合并哈希元素

mysql - 选择日期时间而不指定时间部分?

javascript - 将日期从本地时区转换为 UTC,然后再转换为本地

python - 如何在 IPython Notebook 中缓存?

R 使用 cbind 聚合多个变量

javascript - 如何合并原型(prototype)对象中的默认选项