可以直接使用lag(x)
- 无需将其存储为变量 - 在处理一个维度时,但我不知道如何在多维度上进行操作时这样做。在此示例中,我在执行计算之前明确存储了xc_1
和xt_1
。
例如使用虚拟数据集:
dtf <- data_frame(t = rep(2001:2003, 2),
c = rep(1:2,each=3),
x = rnorm(6))
根据x t-1 和x c-1
计算某些内容dtf <- dtf %>%
# lag over t
group_by(c) %>% mutate(xt_1 = lag(x)) %>%
# lag over c
group_by(t) %>% mutate(xc_1 = lag(x)) %>%
# place function computation here
mutate(result = xt_1 * xc_1)
是否有lag(x, by=c)
和lag(x, by=t)
形式的函数可用于直接执行计算,没有中间变量?