r - 在嵌套数据帧上使用 dplyr inside map 函数
问题描述
将自定义函数映射到嵌套的 daframe
我正在尝试将自定义函数映射到嵌套的 daframe。此函数使用 dplyr 和管道 "%>%" 运算符。
我试图 enquo 函数内部使用的变量,但它一直不起作用。不知道该怎么做。
table <- expand.grid(x = c("bird", "dogs"), year = c(2018,2019), week= c(1:52)) %>%
mutate(christmas = case_when(week == 52 ~1, TRUE ~ 0),
ev = case_when(week == 30 ~ 1, TRUE ~ 0),
alpha = rnorm(n = 208, mean = 10))
myfun_model_alpha <- function(time_s, param, yr, wk){
event <- time_s %>% select(christmas,ev )
time_s <- ts(time_s$alpha, start = c(min(time_s$year),min(time_s$week[time_s$year == min(time_s$year)])),end = c(max(time_s$year),max(time_s$week[time_s$year == max(time_s$year)])), frequency = 52)
#time_s <- ts(time_s$alpha, start = c(2017,01),end = c(2019,20), frequency = 52)
ts_vec <- window(time_s, end = c(yr, wk))
leng <- length(ts_vec)
lambda <- BoxCox.lambda(ts_vec)
model <- auto.arima(ts_vec, lambda = lambda,
biasadj = TRUE,
xreg = matrix(c(fourier(ts_vec, K=param),
event$christmas[1:leng],
event$ev[1:leng]),
nrow = leng,
ncol = param*2+2),
seasonal = FALSE)
forecast <- forecast(model,
16,
xreg=matrix(c(fourier(ts_vec, K=param, h=16),
event$christmas[(leng+1):(leng+16)],
event$ev[(leng+1):(leng+16)]),
nrow = 16,
ncol = param*2+2))$mean
pred = tibble(forecast = forecast,
time_index = 1:16,
actual = window(time_s, start= c(yr,wk))[2:17])
return(pred)
}
# Applying the function t the nested df
table %>%
group_by(x) %>%
nest() %>%
mutate(data = map(data, ~arrange(.x, year, week)),
model = map(data, ~myfun_model_alpha(.,2,2019, 12))) %>%
unnest(model)
它返回如下错误:“(函数(x)中的错误:未找到对象'圣诞节'”我试图用实际值(如果有)来预测 16 周的地平线
解决方案
推荐阅读
- amp-html - AMP 网络故事 | Google 搜索结果和发现中的发布商徽标未更新
- android - 如何在我的应用程序中注册指纹并在另一个设备上使用它?离子
- javascript - ExpressJS 和 Promise with Promise all
- javascript - 如何通过我的扩展程序将网站 (Youtube) 作为 Chrome Web 应用程序启动?
- drupal - Drupal 7 不只在 prod 上显示 head 内容
- excel - 在 VBA 中发出 POST 请求。消息负载在 1023 个字符后跨行拆分
- sql-server - SQL Server - 从另一台服务器将数据插入临时表
- node.js - 当 passport.deserializeUser() 失败时如何发送 flash 错误?
- matplotlib - 在 matplotlib 中的箱线图旁边输入来自 excel 数据集的单个数据点
- android - 活动和视图模型之间的 kotlin 数据共享