3
다양한 관측 값과 변수의 이동 평균을 계산할 수있는 함수를 만들고 싶습니다. 이 모의 데이터로 가져 가세요 :dplyr의 함수로 이동 평균
df = expand.grid(site = factor(seq(10)),
year = 2000:2004,
day = 1:50)
df$temp = rpois(dim(df)[1], 5)
1 개의 변수와 마지막으로 고정 된 수의 관측치가 계산됩니다. 예 : 이것은 지난 5 일간의 평균 온도를 계산합니다 :
library(dplyr)
library(zoo)
df <- df %>%
group_by(site, year) %>%
arrange(site, year, day) %>%
mutate(almost_avg = rollmean(x = temp, 5, align = "right", fill = NA)) %>%
mutate(avg = lag(almost_avg, 1))
지금까지 그렇게 좋았습니다. 이제는 기능화하려고 시도합니다.
avg_last_x <- function(dataframe, column, last_x) {
dataframe <- dataframe %>%
group_by(site, year) %>%
arrange(site, year, day) %>%
mutate(almost_avg = rollmean(x = column, k = last_x, align = "right", fill = NA)) %>%
mutate(avg = lag(almost_avg, 1))
return(dataframe) }
avg_last_x(dataframe = df, column = "temp", last_x = 10)
는이 오류 얻을 :이은 아마도 evaluation mechanism in dplyr 관련되어 이해
Error in mutate_impl(.data, dots) : k <= n is not TRUE
을,하지만 난 그것을 고정되지 않습니다.
미리 도움을 주셔서 감사합니다.