Я пишу код для расчета среднего количества осадков для разных регионов совпадающих США. Мои общие данные имеют 300 раз 120 (lon * lat) сетки в формате Netcdf. Я хочу написать цикл в R, чтобы принять среднее значение каждого из 10 на 10 сеток и присвоить это значение (среднее значение) всем сеткам внутри региона и повторить это для следующего региона. В конце вместо 120 на 300 сетках у меня будет 12 на 30 сеток. Так что это добрый метод масштабирования, который я хочу применить к моим данным. Я могу использовать цикл for для каждого региона отдельно, но он делает мой код очень огромным, и я не хочу этого делать. Любая идея была бы оценена. Благодарю. P.S: Вот функция, которую я написал для одного региона (10by10) lat * lon.пишут петлю для увеличения осадков в США
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,])
}
}
}
Почему вы не можете просто пропустить все области, используя эту функцию? Разве у вас не было бы этого кода и небольшого цикла, который передает каждый файл вашей функции? –