gpt4 book ai didi

r - 条件合并表

转载 作者:行者123 更新时间:2023-12-01 12:38:54 27 4
gpt4 key购买 nike

我有 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

我如何将这两个表合并到一个按“时间”分组的表中,但有一个条件:第一个表中的月份必须与第二个表中的下个月匹配 - 例如第一个表中的九月应与第二个表中的十月匹配.

谢谢!

最佳答案

这对 data.table 来说是一个完美的工作 rolling join

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

关于r - 条件合并表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26895474/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com