我有 2 张桌子:
Time X1
8/1/2013 56
9/1/2013 14
10/1/2013 8
11/1/2013 4
12/1/2013 78
Time X2
8/1/2013 42
9/1/2013 44
10/1/2013 2
11/1/2013 75
12/1/2013 36
如何将这两个表合并到一个表中,按“时间”分组,但有一个条件:第一个表中的月份必须与第二个表中的下个月匹配 - 例如第一个表中的 9 月应与第二个表中的 10 月匹配。
谢谢你!
这是一份完美的工作data.table
滚动连接 http://cran.r-project.org/web/packages/data.table/vignettes/datatable-intro.pdf
library(data.table)
setkey(setDT(dat1)[, Time := as.Date(Time, format = "%m/%d/%Y")], Time)
setkey(setDT(dat2)[, Time := as.Date(Time, format = "%m/%d/%Y") - 1], Time)
dat2[dat1, roll = -Inf]
# Time X2 X1
# 1: 2013-08-01 44 56
# 2: 2013-09-01 2 14
# 3: 2013-10-01 75 8
# 4: 2013-11-01 36 4
# 5: 2013-12-01 NA 78
编辑:如果您不想要不匹配的行,请使用nomatch = 0
dat2[dat1, roll = -Inf, nomatch = 0]
# Time X2 X1
# 1: 2013-08-01 44 56
# 2: 2013-09-01 2 14
# 3: 2013-10-01 75 8
# 4: 2013-11-01 36 4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)