如何解决如何使用单词df 中变量的标题作为函数的输入? (r)
假设我有这个作为我的数据框:
library(fpp3)
df <- prices
我想创建一个函数,在其中传入变量名称和我想预测的前进步数。这是我尝试过的功能,它不起作用。 (我在对时间序列进行交叉验证时使用了“选择”函数,但我不需要在本示例中包含该代码)
fc.function <- function(variable,steps) {
fit <- df %>%
select(year,variable) %>%
model(
MEAN(variable)
)
fit %>%
forecast(h = steps)
}
例如,当我使用变量 'copper' 并且我预测提前 1 步时,我得到一个错误。
fc.function("copper",1)
Error in FUN(X[[i]],...) : object 'variable' not found
Called from: FUN(X[[i]],...)
我在这里查看了多个不同的答案,但除非我错过或误解了我可能拥有的解决方案,否则我找不到答案。
解决方法
您正在为您的函数提供字符值“copper”(而不是符号)。您可以使用 sym
转换为符号,然后在 !!
语句中使用 dplyr
取消引用。
fc.function <- function(variable,steps) {
df %>%
select(year,!!sym(variable)) %>%
model(MEAN(!!sym(variable))) %>%
forecast(h = steps)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。