是否可以在多个维度上滞后变量而不存储滞后变量?

时间:2017-08-03 11:18:32

标签: r dplyr

可以直接使用lag(x) - 无需将其存储为变量 - 在处理一个维度时,但我不知道如何在多维度上进行操作时这样做。在此示例中,我在执行计算之前明确存储了xc_1xt_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)形式的函数可用于直接执行计算,没有中间变量?

0 个答案:

没有答案