【发布时间】:2021-11-05 12:52:28
【问题描述】:
我需要将列表中每一层的数据(每一层对应一个月)乘以该月的天数。
我的列表如下所示:
tmintest=array(0.11:100.4, c(1,256,512))
l <- lapply(1:12, function(i) {
#create the list
Variable <- list(varName = c("tmin","tmin","tmin","tmin","tmin","tmin","tmin","tmin","tmin","tmin","tmin","tmin"),level = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA))
Data = tmintest
xyCoords <- list(x = seq(-40.37,64.37,length.out=420), y = seq(25.37,72.37,length.out=189))
Dates <- list(start = seq(as.Date("2012-01-01"), as.Date("2015-12-31"), by="days"), end=seq(as.Date("2012-01-01"), as.Date("2015-12-31"), by="days"))
Delta <- list(Variable = Variable,Data=Data, xyCoords=xyCoords,Dates=Dates)
})
我想我需要定义月份和每月的天数:
mth <- c(1:12)
#每月天数
ndays <- c(31,28,31,30,31,30,31,31,30,31,30,31)
然后用这些信息制作一个数据框
mthdays<- as.data.frame(cbind(mth, ndays))
然后我需要将列表中每个级别的数字(例如一月是l[[1]])匹配到我的ndays(通过mth)并乘以该级别中的Data(l[[1]][["Data"]] ) ndays。我认为使用 which 可能会很有用(将列表中每个级别的数字与我的数据框中的 mth 匹配,但我不确定最好的方法。
【问题讨论】: