我有一个大型数据集,表示为“importdata”,其结构为:
| Date | Qobs | Qobsmodel |
因此,它是一个分为日期,观察流和模型流(水文)的表。
此数据是多年的每日时间步。但是,我使用的这个脚本需要将它们分解为年度数据集,然后对每个“年”进行分析。因此,我一直在使用动态变量(让脚本生成它自己的变量并使用它们)来分解数据集的每个部分。
for (i in 1:numberyears) {
yearstartpaste <- paste(yearsimport[i],"-01-01", sep = "")
yearendpaste <- paste(yearsimport[i]+1,"-01-01", sep = "")
variablename <- paste("year",yearsimport[i],"data", sep = "")
assign(variablename,
flowdatadf[flowdatadf$Date >= yearstartpaste & flowdatadf$Date < yearendpaste])
}
“numberofyears”是开始年份和结束年份之间的总年数,“yearsimport”是我需要在数组中分解的年份,“flowdatadf”是完整的流量数据集。
稍后,我按以下方式调用数据集。
for (i in 1:numberyears) {
variablename <- paste("year",yearsimport[i],"data", sep = "")
maxflow[i] <- max(eval(parse(text = variablename))$Qobsmodel, na.rm = TRUE)
}
据我所知,这是一种非常草率的编码方式。阅读其他关于动态变量的stackexchange帖子,我想知道是否有人对我的方法有更好的想法/解决方案?
有人建议将数据框与另一个变量一起使用,但我不知道在我的动态变量需要处理数组/表的情况下这是如何工作的。
谢谢!