Ошибка декомпозиции временных рядов растра R

Я пытаюсь разложить месячный стек временных рядов (размеры: 336, 221, 74256, 420), чтобы получить случайный компонент. Я использую следующее:

tsfun <- function(x) {  
  my.ts = na.remove(ts(x, start=c(1982,1), frequency=12)) 
  my.decomp = decompose(my.ts, type="multi") 
  my.exp = my.decomp$random 
}
random <- calc(ras_in, fun=tsfun)

но я получаю следующую ошибку

Ошибка в .calcTest(x[1:5], fun, na.rm, forcefun, forceapply): невозможно использовать эту функцию

Любое предложение? Бесконечно благодарен


person Gianca    schedule 10.01.2018    source источник
comment
Было бы проще с фрагментом данных, содержащим как минимум 2-3 значения NA. Так что мы можем проверить наши теории перед публикацией. Это не обязательно должно быть все, просто dput(x) все это и извлеките фрагмент, но перед публикацией убедитесь, что фрагмент также не работает.   -  person sconfluentus    schedule 10.01.2018


Ответы (1)


Я думаю, что ваша функция недействительна. При тестировании получаю:

tsfun(1:24)
#Error in na.remove(ts(x, start = c(1982, 1), frequency = 12)) : 
#  could not find function "na.remove"

Вот версия, которая работает для меня:

tsfun2 <- function(x) {  
  my.ts = na.omit(ts(x, start=c(1982,1), frequency=12)) 
  decompose(my.ts, type="multi")$random 
}

tsfun2(1:24)
#     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
#1982  NA  NA  NA  NA  NA  NA   1   1   1   1   1   1
#1983   1   1   1   1   1   1  NA  NA  NA  NA  NA  NA
person Robert Hijmans    schedule 10.01.2018