r - 矢量化列加法

标签 r purrr

鉴于此小标题:

tibble(x = c(1:9))

我想添加一列x_lag_1 = c(NA,1:8) ,一栏x_lag_2 = c(NA,NA,1:7)

高达x_lag_n .

最佳答案

使用data.table可以快速实现这一点:

library(data.table)

n <- seq(4)
setDT(df)[, paste0('x_lag_', n) := shift(x, n)]

df
  x x_lag_1 x_lag_2 x_lag_3 x_lag_4
1: 1      NA      NA      NA      NA
2: 2       1      NA      NA      NA
3: 3       2       1      NA      NA
4: 4       3       2       1      NA
5: 5       4       3       2       1
6: 6       5       4       3       2
7: 7       6       5       4       3
8: 8       7       6       5       4
9: 9       8       7       6       5

关于r - 矢量化列加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70502165/

相关文章:

r - 将多列添加到 R 中的 data.table

r - R中的doRedis/foreach GBM并行处理错误

r - 如何将 purrr 与 str_split 一起使用

r - 将不等长列表的列表转换为数据帧

r - lme4::glmer 与 Stata 的 melogit 命令

regex - R:gsub 和捕获

r - 为什么在具有许多组的大型数据帧上拆分效率低下?

使用 purrr 根据列表名称重命名列表列

r - 在 R 中创建 GIF 时出现帧顺序问题(库 : "magick" and "purrr")

r - R中带有列表的两个列表的总和