Как использовать apply для получения фильтра hpfilter для нескольких столбцов?

#r

Вопрос:

Я пытаюсь получить фильтр hpfilter для нескольких столбцов данных, которые у меня есть с этим кодом, но я получил ошибку «Ошибка в is.ts(x) : аргумент «x» отсутствует, по умолчанию отсутствует». Я был бы признателен за любые предложения о том, как получить фильтр hpfilter для нескольких столбцов. Спасибо.

  hp_filter1 <- apply(dataset[,2:ncol(dataset)],2, hpfilter(freq=1600, type="lambda"))
 

Комментарии:

1. Попробуй hp_filter1 <- apply(dataset[, -1],2, hpfilter, freq=1600, type="lambda")

Ответ №1:

Вы можете использовать apply в качестве —

 hp_filter1 <- apply(dataset[, -1],2, hpfilter, freq=1600, type="lambda")
 

Или для исправления вашего подхода используйте анонимную функцию, которая будет понятнее.

 hp_filter1 <- apply(dataset[,2:ncol(dataset)],2, function(x) 
                    hpfilter(x, freq=1600, type="lambda"))
 

Поскольку вы применяете функцию к каждому столбцу, вы также можете использовать lapply / sapply .