R 是否可以在不存储滞后变量的情况下,在多个维度上滞后变量?
在处理一维问题时,可以直接使用R 是否可以在不存储滞后变量的情况下,在多个维度上滞后变量?,r,dplyr,R,Dplyr,在处理一维问题时,可以直接使用lag(x),而无需将其存储为变量,但在处理多维问题时,我不知道如何使用。在这个例子中,我在执行计算之前显式地存储xc_1和xt_1 例如,使用虚拟数据集: dtf <- data_frame(t = rep(2001:2003, 2), c = rep(1:2,each=3), x = rnorm(6)) dtf%突变(xt_1=lag(x))%>% #滞后于c 组由(t)%%>%突变
lag(x)
,而无需将其存储为变量,但在处理多维问题时,我不知道如何使用。在这个例子中,我在执行计算之前显式地存储xc_1
和xt_1
例如,使用虚拟数据集:
dtf <- data_frame(t = rep(2001:2003, 2),
c = rep(1:2,each=3),
x = rnorm(6))
dtf%突变(xt_1=lag(x))%>%
#滞后于c
组由(t)%%>%突变(xc_1=lag(x))%%
#将函数计算放在这里
变异(结果=xt_1*xc_1)
是否有一种形式为lag(x,by=c)
和lag(x,by=t)
的函数可以直接执行计算,而不需要中间变量?没有(据我所知,但我可能错了)。至少当我每次都想用不同的var对_进行分组时,我就是这么做的。不,没有(据我所知,但我可能错了)。至少当我每次都想按不同的var对_进行分组时,我就是这么做的。
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)