[英]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 v1read
日期,第2 v1read
所需數據。 然后,我比賽的日期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即可完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.