假设我有两个数据框。每个都有一个DAY,一个月和一个YEAR列以及另一个变量C和P.我想以两种不同的方式合并两个数据帧。首先,我通过数据合并:
test<-merge(data1,data2,by.x=c("DAY","MONTH","YEAR"),by.y=c("DAY","MONTH","YEAR"),all.x=T,all.y=F)
这完美无缺。第二次合并是我遇到麻烦的。因此,我目前将1996年1月5日的值从data1和1996年1月5日的值从data2合并到一个数据框中,但现在我想将第三个值合并到新数据框的每一行。具体来说,我想将1996年1月4日的数据与数据2合并为1996年1月5日的两个值。任何关于以这种方式使合并变得灵活的提示?
示例数据:
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
答案 0 :(得分:2)
创建一个Date类型的新列,而不仅仅是某些日,月,年整数。您可以使用as.Date()来执行此操作,但您需要在给定字符串的情况下查找格式正确的格式=参数。我们称之为D1列。现在做data1 $ D2 = data1 $ D1 + 1.这里的关键点是Date类型允许简单的日期算术。现在只需合并x = D1和y = D2。
如果令人困惑,最重要的是您需要将列转换为日期类型,以便您可以进行日期算术。