Skip to content

Commit b9fbef9

Browse files
authored
Update ma8h.R test
1 parent a0ffbe6 commit b9fbef9

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

R/ma8h.R

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#' @return data.frame
1111
#'
1212
#' @export
13-
#' @importFrom terra roll
1413
#'
1514
#' @examples
1615
#' model_file <- paste(system.file("extdata", package = "eva3dm"),
@@ -33,28 +32,28 @@ ma8h <- function(data, time = 'date', var, verbose = TRUE, ...) {
3332
if(verbose)
3433
cat('processing 8-hour moving avarage ... \n')
3534

36-
# moving_average <- function(x, n = 8) {
37-
# if (n > length(x)) {
38-
# stop("Window size 'n' should be less than or equal to the length of the vector 'x'.")
39-
# }
40-
# result <- numeric(length(x) - n + 1)
41-
# for (i in 1:(length(x) - n + 3)) {
42-
# result[i] <- mean(x[i:(i + n - 1)], na.rm = T)
43-
# }
44-
# result <- c(NA,NA,NA,result,NA,NA)
45-
# return(result)
46-
# }
35+
moving_average <- function(x, n = 8) {
36+
if (n > length(x)) {
37+
stop("Window size 'n' should be less than or equal to the length of the vector 'x'.")
38+
}
39+
result <- numeric(length(x) - n + 1)
40+
for (i in 1:(length(x) - n + 3)) {
41+
result[i] <- mean(x[i:(i + n - 1)], na.rm = T)
42+
}
43+
result <- c(NA,NA,NA,result,NA,NA)
44+
return(result)
45+
}
4746

4847
if(missing(var)){
4948
VARS = names(data)[!names(data) %in% time]
5049
}
5150
var <- VARS[1]
52-
# data$roll_avg <- moving_average(data[[var]], n = 8)
53-
data$roll_avg <- terra::roll(data[[var]],8,mean,'around',na.rm=T)
51+
data$roll_avg <- moving_average(data[[var]], n = 8)
52+
# data$roll_avg <- terra::roll(data[[var]],8,mean,'around',na.rm=T)
5453
output <- data[,c(time,'roll_avg')]
5554
for(var in VARS[-1]){
56-
# data$roll_avg <- moving_average(data[[var]], n = 8)
57-
data$roll_avg <- terra::roll(data[[var]],8,mean,'around',na.rm=T)
55+
data$roll_avg <- moving_average(data[[var]], n = 8)
56+
# data$roll_avg <- terra::roll(data[[var]],8,mean,'around',na.rm=T)
5857
output <- cbind(output,new_var = data$roll_avg)
5958
}
6059
names(output) <- c(time,VARS)

0 commit comments

Comments
 (0)