gpt4 book ai didi

R - data.table 滚动连接困惑

转载 作者:行者123 更新时间:2023-12-02 07:29:44 26 4
gpt4 key购买 nike

我在使用 data.table 实现滚动联接时遇到一些问题。

我有两张 table

m<-data.table(PolicyNo=rep(1709119, 4), EFDT=as.Date(c("2013-02-01","2014-02-01", "2012-3-1", "2011-3-1")))
setkey(m,"PolicyNo","EFDT")
m
PolicyNo EFDT
1: 1709119 2011-03-01
2: 1709119 2012-03-01
3: 1709119 2013-02-01
4: 1709119 2014-02-01

p<-data.table(PolicyNo=rep(1709119, 2), EFDT=as.Date(c("2013-02-01", "2012-1-1")))
setkey(p,"PolicyNo","EFDT")
p
PolicyNo EFDT
1: 1709119 2012-01-01
2: 1709119 2013-02-01

p 中的 EFDT 是“正确的”EFDT(即我想要保留的日期)。我想根据匹配的保单编号将 m 与 p 连接起来,并将 m 中的 EFDT 向后滚动到 p 中第一个匹配的 EFDT。在此示例中,结果应为

result
PolicyNo EFDT EFDT.m
1: 1709119 2012-01-01 2012-03-01
2: 1709119 2013-02-01 2013-02-01
3: 1709119 2013-02-01 2014-02-01

我试过了

m[, EFDT.m := EFDT]
m[p, roll=-Inf, nomatch=0]

运气不好。

最佳答案

将新列添加到 p 而不是 m,因为您想要相反的连接:

p[, EFDT.copy := EFDT]

p[m, roll = Inf]
# PolicyNo EFDT EFDT.copy
#1: 1709119 2011-03-01 <NA>
#2: 1709119 2012-03-01 2012-01-01
#3: 1709119 2013-02-01 2013-02-01
#4: 1709119 2014-02-01 2013-02-01

添加一些 NA 的过滤并重命名列,一切就完成了。

关于R - data.table 滚动连接困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24891231/

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