r - r:在函数内的公式中使用傅立叶时未找到对象
问题描述
(使用中的forecast
包r
)。如果我写:
tslmf <- function(y, h, myK,...) {
fourier(y, myK)
}
我可以调用它,tslmf(taylor, h=1, c(1,1))
一切正常。但如果我写:
tslmf <- function(y, h, myK,...) {
fit <- tslm(y ~ trend + fourier(y, K=myK))
}
并称其为完全相同,我得到:
object 'myK' not found
如果我这样做:
tslmf <- function(y, h, myK,...) {
z <- fourier(y, myK)
fit <- tslm(y ~ trend + z)
}
它确实有效!
这是为什么?
解决方案
fourier
调用 inside正在环境tslm
中寻找,并且在那里找不到它们。的封闭环境不是你的函数的环境,你有.myK
forcast
base
global
tslm
myK
请参阅函数环境、apply() 和 forceAndCall() 忽略来自 parent.frame() 的 get()或访问传递给父 R 函数或在其中定义的变量。
推荐阅读
- python - Keys.ALT 和 Keys.LEFT_ALT 在硒中不起作用?(Python)
- python - Django Paginator - 我在继承自 Paginator 的类中创建了一个函数,以及为什么我不能在前端使用这个函数
- php - 如何捕获和格式化输出嵌套格式标签?
- javascript - Elements 上的平滑滚动行为
- java - OpenGL画一颗星星
- c++ - 如何更整齐地排列输出?
- javascript - 失败时的 Ajax 响应
- junit - 如何在 RCP 应用程序中使用 mockito 测试异常?
- python-3.x - 如何用熊猫过滤一列中的字母和数字
- javascript - 开玩笑模拟第三方对象