0
我有兩個表。從2012年到2014年有3小時的信息。它看起來像這樣:填補了表中的空白
1 01.06.2012 00:00 10 0
2 01.06.2012 03:00 10 0
3 01.06.2012 06:00 10 6
4 01.06.2012 09:00 7,5 0
5 01.06.2012 12:00 6 2,5
6 01.06.2012 15:00 6 0
7 01.06.2012 18:00 4 0
8 01.06.2012 21:00 4 0
9 02.06.2012 00:00 0 0
10 02.06.2012 03:00 0 0
其他表是同一時間,但與1分鐘的時間,它沒有數據。
1 01.06.2012 00:00 3 1
2 01.06.2012 00:01 3 1
3 01.06.2012 00:01 3 1
4 01.06.2012 00:03 3 1
5 01.06.2012 00:03 3 1
6 01.06.2012 00:05 3 1
7 01.06.2012 00:05 3 1
8 01.06.2012 00:07 3 1
9 01.06.2012 00:08 3 1
10 01.06.2012 00:09 3 1
11 01.06.2012 00:10 3 1
現在,我需要第二個,第二個表的第3行的值相關聯的第一,所以如果從第二個表中的時間戳timestamp(i)
和第一臺的timestamp(i+1)
之間將採取B(i)
和C(i)
並複製它們。 我有這個代碼,但正如您從上面可以看到的,它不會將正確的值放入。3 & 1
而不是10 & 0
。
clouds <- read.csv('~/2012-2014 clouds info.csv', sep=";", header = FALSE)
cloudFull <- read.csv('~/2012-2014 clouds.csv', sep=";", header = FALSE)
for (i in 1:nrow(cloudFull)){
dateOne <- strptime(cloudFull[i,1], '%d.%m.%Y %H:%M')
for (j in 1:nrow(clouds)){
bottomDate = strptime(clouds[j,1], '%d.%m.%Y %H:%M')
upperDate = strptime(clouds[j+1,1], '%d.%m.%Y %H:%M')
if ((dateOne >= bottomDate) && (dateOne < upperDate)) {
cloudFull[i,2] <- clouds[j,2]
cloudFull[i,3] <- clouds[j,3]
break
}
}
}
write.csv(cloudFull, file = 'cc.csv')
我該怎麼辦?
假設第二數據集是cloudFull,你的代碼爲我工作,並給出了預期的結果。編寫像這樣循環的一個問題是它們有混淆工作空間的副作用,所以也許另一個變量導致問題。重新啓動你的會話或刪除所有變量,並開始新鮮 – rawr 2014-09-23 12:41:24
試圖做到這一點,仍然有相同的結果。我甚至不知道3和1來自哪裏。 – 2014-09-24 04:35:59