假设我有两个数据帧。每个变量都有一个DAY、一个月和一个年份列,以及另外一个变量C和P。我想以两种不同的方式合并这两个数据帧。首先,我按数据合并:
test<-merge(data1,data2,by.x=c("DAY","MONTH","YEAR"),by.y=c("DAY","MONTH","YEAR"),all.x=T,all.y=F)这个可以完美地工作。第二个合并就是我遇到麻烦的那个。因此,我目前已经将来自data1的1996年1月5日的值和来自data2的1996年1月5日的值合并到一个数据框中,但现在我想将第三个值合并到新数据框的每一行。具体地说,我希望将data2中1996年1月4日的值与1996年1月5日的两个值合并。如何让merge以这种方式变得灵活,有什么建议吗?
示例数据:
data1
C DAY MONTH YEAR
1 1 1 1996
6 5 1 1996
5 8 1 1996
3 11 1 1996
9 13 1 1996
2 14 1 1996
3 15 1 1996
4 17 1 1996
data2
P DAY MONTH YEAR
1 1 1 1996
4 2 1 1996
8 3 1 1996
2 4 1 1996
5 5 1 1996
2 6 1 1996
7 7 1 1996
4 8 1 1996
6 9 1 1996
1 10 1 1996
7 11 1 1996
3 12 1 1996
2 13 1 1996
2 14 1 1996
5 15 1 1996
9 16 1 1996
1 17 1 1996发布于 2012-01-27 01:27:24
创建一个Date类型的新列,而不仅仅是一些日、月、年整数。您可以使用as.Date()来完成此操作,不过您需要在给定字符串的情况下查找format=参数的正确格式。让我们将该列命名为D1。现在做data1$D2 = data1$D1 + 1。这里的关键点是日期类型允许简单的日期运算。现在只需通过x=D1和y=D2合并即可。
如果这让人困惑,底线是您需要将列转换为Date类型,以便可以进行date运算。
https://stackoverflow.com/questions/9022273
复制相似问题