【发布时间】:2020-04-06 06:45:30
【问题描述】:
https://dplyr.tidyverse.org/reference/lead-lag.html
我想要滞后列。 就像上面的网址。 但是我有很多功能。
data <- data.frame(day=c("2010-01-01","2010-01-02","2010-01-03","2010-01-04","2010-01-05"),
dummy_1=rbinom(5,1,0.5),
dummy_2=rbinom(5,1,0.5),
dummy_3=rbinom(5,1,0.5),
#and so on ...... many dummy_X colmuns...
one_hot_1=rbinom(5,1,0.5),
one_hot_2=rbinom(5,1,0.5),
one_hot_3=rbinom(5,1,0.5)
#and so on ...... many one_hot_X colmuns...
)
day dummy_1 dummy_2 dummy_3 one_hot_1 one_hot_2 one_hot_3
1 2010-01-01 1 1 1 0 1 1
2 2010-01-02 0 1 1 0 0 0
3 2010-01-03 1 0 1 0 0 0
4 2010-01-04 0 0 1 1 1 1
5 2010-01-05 0 1 0 0 0 1
我想获得更容易(整洁)和稳定的列名。
data_2 <- mutate(data,
dummy_1_shift_2 = lag(dummy_1, 2),
dummy_1_shift_3 = lag(dummy_1, 3),
dummy_1_shift_4 = lag(dummy_1, 4),
dummy_1_shift_5 = lag(dummy_1, 5),
dummy_1_shift_6 = lag(dummy_1, 6),
dummy_1_shift_7 = lag(dummy_1, 7),
dummy_1_shift_8 = lag(dummy_1, 8),
#and so on ...... many dummy_X_shift_Y colmuns...
one_hot_shift_2 = lag(one_hot_1, 2),
one_hot_shift_3 = lag(one_hot_1, 3),
one_hot_shift_4 = lag(one_hot_1, 4),
one_hot_shift_5 = lag(one_hot_1, 5),
one_hot_shift_6 = lag(one_hot_1, 6),
one_hot_shift_7 = lag(one_hot_1, 7),
one_hot_shift_8 = lag(one_hot_1, 8)
)
你有什么想法吗?在R中。
谢谢。
【问题讨论】:
-
您想对所有虚拟列 + 所有 one_hot_columns 执行此操作吗?那么每列都有 8 个新列?
-
是的。如上述data_1的列名c(day,dummy_1~3,one_hot_1~3)。我想做 (dummy_1_shift_2~8,summy_2_shift_2~8,dummy_3_shift_2~8,one_hot_1_shift_2~8 和每个 for one_hot_2,3 )
标签: r dplyr tidyverse tidyr one-hot-encoding