遍历 R 中的未知日期

Iterating through unknown dates in R

我是 R 的新手(之前使用过 C++ 和 Python)所以这可能只是我不了解 R 的一些细微差别的一个因素。

我正在处理的程序应该按日期构建数据矩阵。下面是我可能如何初始化这样一个矩阵:

dates <- seq(as.Date("1980-01-01"), as.Date("2013-12-31"), by="days")
HN3 <- matrix(nrow=length(dates), ncol = 5, dimnames = list(as.character(dates), c("Value1", "Value2", "Value3", "Value4", "Value5")))

请注意,dates 包括 1980 年到 2013 年之间的每一天。

因此,从那里开始,我的文件包含某些日期和 Value1 的测量值,等等,我需要将这些文件的内容读入 HN3。但问题是 大多数文件不包含每天的测量值

所以我想做的是将文件读入数据框(例如,v1read),其中第 1 列是日期,第 2 列是所需数据。然后我将 v1read 的日期与 HN3 中该日期的行相匹配,并以这种方式复制所有相关的 v1read 值。这是我这样做的尝试:

for (i in 1:nrow(v1read)) {
  HN3[as.character(v1read[i,1]),Value1] <- v1read[i,4]
}

i 的值意外增加时,这会给我一个超出索引范围的错误。我知道 R 不喜欢遍历日期,但由于迭代器本身是一个数值而不是日期,我希望我发现了一个漏洞。

任何有关如何完成此操作的提示都将不胜感激。

让我们使用 library(dplyr)。从

开始
dates = seq(as.Date("1980-01-01"), as.Date("2013-12-31"), by="days")
HN3 = data.frame(Date=dates)

现在,加载您的第一个文件,该文件具有日期和 Value1。

file1 = read.file(value1.file) #I'm assuming this file has a column already named "Date" and one named #Value1
HN3 = left_join(HN3,file1,by="Date")

这将执行左连接(SQL 样式)仅匹配存在日期的行,并用 NA 填充其余行。现在您有一个包含两列的数据框,Date 和 Value1。载入您的其他文件,对每个文件执行 left_join,您就完成了。