我想完成一個有差距的數據框。數據是按小時結構化的,並且在幾個小時之間有一些跳躍。這是數據幀的樣本:通過合併完成的數據框填補空白?
sms <- read.csv("hoursms2.csv", sep = ";", header = FALSE)
sms$date <- strptime(sms$date,"%d/%m/%Y %H:%M")
date count
2015-12-17 22:00:00 5
2015-12-18 09:00:00 7
2015-12-18 10:00:00 3
2015-12-18 12:00:00 6
我已經試過是創建另一個數據幀從開始到第一個數據幀的結束範圍,但所有的時間和有一個唯一的標識符,以保持它的軌道:
hh <- seq(min(sms$date), max(sms$date), by="hour")
hh <- as.data.frame(hh)
hh <- cbind(hh,seq(1:3292)) #length of the hh data frame
其中給出以下幾點:
date id
2015-12-04 12:00:00 1
2015-12-04 13:00:00 2
2015-12-04 14:00:00 3
2015-12-04 15:00:00 4
2015-12-04 16:00:00 5
到目前爲止,我已經試過這三樣東西我在計算器上,here發現,但他們做的在這種情況下無法正常工作:
res <- merge(sms,hh,by = "date", all = TRUE)
res2 <- res[duplicated(res$date), ]
res3 <- res[!duplicated(res), ]
的第一條命令,資源,什麼是是複製的所有單元格,它不會按日期進行合併,所以它提供了以下:
2015-12-23 19:00:00 5
2015-12-23 19:00:00 NA
另一個搞砸了一切。我認爲這與日期格式不正確相關,但不確定。任何關於如何填寫我的數據框的建議?
其中一種方法是使用'dplyr'包中的'left_join()'。你做'left_join(hh,短信)',這應該會給你你想要的,我想。 – Gopala
@Gopala剛剛嘗試過它,並給出了以下錯誤:加入:「日期」 錯誤:無法加入列'日期'x'日期':無法加入'日期'x'日期',因爲不兼容的類型POSIXct,POSIXt/POSIXlt,POSIXt) – adrian1121