【发布时间】:2017-03-05 20:32:24
【问题描述】:
假设我有以下数据:
input <- data.frame(id=rep(c('A', 'B'), c(10, 10)),year=rep(1:10, 2),
y=c(rnorm(10), rnorm(10)),x1 = c(rnorm(10),rnorm(10)))
我想使用 rollapplyr 进行滚动回归。首先我定义了一个 beta 函数:
# Simple Regression
beta <- function(x, indepvar, depvar) {
a <- coef(lm(formula = indepvar ~ depvar, data = x))
return(a)
}
现在我想在 rollapplyr 设置中使用这个函数。 (我知道我可以在 rollapplyr 中定义函数,但我想了解这个概念。)
rollapplyr(input, width = 6,
FUN = beta, x = input, indepvar = y, depvar = x1,
by.column = FALSE)
我试图通过在上面的代码中定义输入、indepvar 和 depvar 来提供 beta 函数的参数。但是我收到了这个错误:
FUN(data[posns, ], ...) 中的错误:未使用的参数 (data[posns, ])
这里有个问题:unused arguments 但我不明白我没有使用什么论据。这个错误在我的上下文中意味着什么?为什么我会得到它?
【问题讨论】:
-
你能解释一下你想用
rollapplyr做什么以及它来自什么包吗?我以前从未见过这个功能。 -
@user rollapply 函数来自 zoo 包。我要做的是在宽度 = 6 的窗口中滚动运行我的回归(仅作为示例)。
-
想要的结果是什么?
-
@user 让我解释一下上面的输入数据。你可以看到我有 10 年的 y 和 x1,有两个不同的 id(A 和 B)。我想运行滚动窗口回归并保存 beta 。比如第一个回归是从year = 1到year = 7。那么下一个回归是从year = 2到year = 8。之后是从year = 3到year = 9。你可以看到。 (我的下一步是分组做,但我想在这里一步一步走,顺便说一句,我卡在了第一步。