#r #dataframe #rollapply
#r #dataframe #rollapply
Вопрос:
У меня есть фрейм данных с первым столбцом из 2 столбцов: дата-час (каждый час одно наблюдение), а второй столбец — температура (th).Я пытаюсь найти, какое наибольшее изменение температуры в моем ряду данных за определенное время (6 часов)? Учитывайте как быстрое повышение, так и понижение температуры. Я реализую функцию для вычисления диапазона между max(x) и min(x) вектора x. а затем используйте эту функцию в аргументе FUN = функции rollapply (из пакета zoo).
t_range<- function(x)diff(range(x))
th<-Th %>% mutate(t06 = rollapply(th,
width = 6,
FUN = t_range,
fill = NA,
align= "right",
arrange = desc(th)))
Но я столкнулся со следующей ошибкой:
неиспользуемый аргумент (arrange = c(…..
в чем проблема arrange= .. здесь?
Комментарии:
1. Удалить
arrange = desc(th)
.th <- Th %>% mutate(t06 = rollapply(th, width = 6, FUN = t_range, fill = NA, align= "right"))
. Вы также можете использоватьrollapplyr
, который имеет значение по умолчаниюalign= "right"
2. Спасибо. да, теперь я понимаю всю концепцию
Ответ №1:
Вы можете удалить arrange = desc(th)
из rollapply
вызова. Включите его до или после rollapply
. Также rollapply(..., align = 'right')
можно упростить с rollapplyr
помощью .
library(dplyr)
th<- Th %>%
mutate(t06 = zoo::rollapplyr(th,width = 6, FUN = t_range, fill = NA)) %>%
arrange(desc(th))