Я написал функцию, которая создает преобразование запаздывания для переменных во фрейме данных. Теперь, когда dplyr имеет мягкий устаревший аргумент funs_, он дает мне предупреждение использовать список вместо funs_. ниже дана моя функция преобразования лагов, которая работает нормально, но я хочу изменить ее, используя обновленный список аргументов.
lagTransformation<- function(ds,n)
{
# this function creats lag transformation of dataframe
# args:
# ds : Dataset
# n : number of lags
require(dplyr)
lags <- seq(n)
lag_names <- paste("lag", formatC(lags, width = nchar(max(lags)), flag = "0"), sep = "")
lag_functions <- setNames(paste("dplyr::lag(., ", lags, ")"), lag_names)
ds <-ds %>% mutate_at(vars(names(ds)), funs_(lag_functions)) %>% select(contains("_lag"))
return(ds)
}
Попытка замены funs_ списком, но с ошибкой
lagTransformation<- function(ds,n)
{
# this function creats lag transformation of dataframe
# args:
# ds : Dataset
# n : number of lags
require(dplyr)
lags <- seq(n)
lag_names <- paste("lag", formatC(lags, width = nchar(max(lags)), flag = "0"), sep = "")
lag_functions <- setNames(paste("dplyr::lag(., ", lags, ")"), lag_names)
ds <-ds %>% mutate_at(vars(names(ds)), list(~.lag_functions)) %>% select(contains("_lag"))
return(ds)
}
Ошибка в get (.x, .env, mode = "function"): object 'dplyr :: lag (., 1) 'режима' функция 'не найдена
см. Вопрос ниже, но не может исправить ошибку
Создать новые переменные с помощью mutate_at, сохранив при этом исходные
какая модификация мне нужна?