【发布时间】:2021-05-07 06:56:50
【问题描述】:
在以下示例中,我尝试从时间 t = 1 到 t 的线性模型计算第一个系数。这是一个不断扩大的滚动窗口。
它适用于未分组的数据,但按大小写分组时,我收到错误Error: Columncoef1must be length 10 (the group size) or one, not 30。
如何处理分组数据?
library(dplyr)
library(slider)
get_coef1 <- function(data) {
coef1 <- lm(data = data, r1 ~ r2 + r3) %>%
coef() %>%
.["r2"] %>%
unname()
return(coef1)
}
data <- tibble(t = rep(1:10, 3),
case = c(rep("a", 10), rep("b", 10), rep("c", 10)),
r1 = rnorm(30),
r2 = rnorm(30),
r3 = rnorm(30))
data %>%
# ungroup() %>%
group_by(case) %>%
mutate(coef1 = slider::slide_dbl(., ~get_coef1(.x),
.before = Inf, .complete = T))
【问题讨论】: