Я пишу код для расчета среднего количества осадков для разных регионов совпадающих США. Мои общие данные имеют 300 сеток по 120 (долгота * широта) в формате Netcdf. Я хочу написать цикл в R, чтобы взять среднее значение для каждого количества сеток 10 на 10 и присвоить это значение (среднее) всем сеткам внутри региона и повторить это для следующего региона. В конце вместо 120 на 300 сеток у меня будет 12 на 30 сеток. Так что это своего рода метод масштабирования, который я хочу применить к своим данным. Я могу использовать цикл for для каждого региона отдельно, но это делает мой код очень большим, и я не хочу этого делать. Любая идея будет оценена. Спасибо. P.S. Вот функция, которую я написал для одного региона (10х10) широта*долгота.
upscaling <- function(file, variable, start.time=1, count.time=1)
{
library(ncdf) # load ncdf library to manipulate ncdf data
ncdata <- open.ncdf(file); # open ncdf file
lon <- get.var.ncdf(ncdata, "lon");
lat <- get.var.ncdf(ncdata, "lat");
time <- get.var.ncdf(ncdata, "time");
start.lon <- 1
end.lon <- length(lon)
start.lat <- 1
end.lat <- length(lat)
count.lon <- end.lon - start.lon + 1; # count number of longitude
count.lat <- end.lat - start.lat + 1; # count number of latitude
dat <- get.var.ncdf(ncdata, variable, start=c(start.lon, start.lat, 1),
count=c(count.lon, count.lat, 1))
temp.data<- array(0,dim=c(10,10))
for (i in 1:10)
{
for (j in 1:10)
{
temp.data <- mean(dat[i,j,])
}
}
}