动态变量的替代方案?

时间:2016-04-25 12:43:03

标签: r

我有一个大型数据集,表示为“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帖子,我想知道是否有人对我的方法有更好的想法/解决方案?

有人建议将数据框与另一个变量一起使用,但我不知道在我的动态变量需要处理数组/表的情况下这是如何工作的。

谢谢!

0 个答案:

没有答案