我正在尝试计算每月产品(二进制文件)的年度总数https://echange-fichiers.inra.fr/get?k=Jr3tvgeKnWUiC1B0MMY。所以我有 12 个文件,我必须计算总和。下面给出的代码运行良好,但我需要将每个文件乘以对应于该年该月的天数,然后计算总和。就我而言,这些数据是 2000 年(闰年),所以我想将文件号 1 的结果乘以 31,将文件号 2 的结果乘以 29,依此类推....
files<- list.files("C:\\jung file_2000_img", "*.img", full.names = TRUE)
x<- do.call(rbind,(lapply(files, readBin , double() , size = 4 , n=360 * 720 , signed =TRUE)))
results <- colSums(x)
fileName <- sprintf("C:\\annual_ET2000_without999_1.img")
writeBin(as.double(results), fileName, size = 4)
根据詹姆斯的回答,这将计算天数:
numDays <- function(month,year){
as.numeric(strftime(as.Date(paste(year+month%/%12,month%%12+1,"01",sep="-"))-1,"%d"))
}
那么现在如何将它应用到我上面的代码中呢?我的意思是我想获取每个文件的结果并将其乘以天数,例如:
file1*numDays(1,2000)+file2*numDays(2,2000)+file3*numDays(3,2000)
.............file12*numDays(12,2000)