gpt4 book ai didi

r - 数据表 R 滞后

转载 作者:行者123 更新时间:2023-12-04 12:34:07 27 4
gpt4 key购买 nike

目前我有一个实用函数 lags东西在data.table按组。功能很简单:

panel_lag <- function(var, k) {
if (k > 0) {
# Bring past values forward k times
return(c(rep(NA, k), head(var, -k)))
} else {
# Bring future values backward
return(c(tail(var, k), rep(NA, -k)))
}
}

然后我可以从 data.table 调用它:
x = data.table(a=1:10, 
dte=sample(seq.Date(from=as.Date("2012-01-20"),
to=as.Date("2012-01-30"), by=1),
10))
x[, L1_a:=panel_lag(a, 1)] # This won't work correctly as `x` isn't keyed by date
setkey(x, dte)
x[, L1_a:=panel_lag(a, 1)] # This will

这需要我检查内部 panel_lag是否 x键控。有没有更好的方法来做滞后? table 往往很大,所以它们真的应该被键入。我只是做 setkey在我滞后之前。我想确保我不会忘记键入它们。所以我想知道人们是否有一种标准的方式来做到这一点。

最佳答案

如果要确保按其他列的顺序滞后,可以使用 order功能:

x[order(dte),L1_a:=panel_lag(a,1)]

但是,如果您按日期顺序做很多事情,那么以这种方式进行键控是有意义的。

关于r - 数据表 R 滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14383095/

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