2017-09-16 158 views
0

早上好,R中的匹配日期

我有關於購買店主的數據框。他們不會每天發生。 它有兩列:第一個描述日期,第二個數量在那個日期買了。

我想將它轉換成日常數據,完成原始數據集;所以我創建了一個序列: 「a < - seq(as.Date(」2013/11/19「),as.Date(」2017/04/22「),」days「)」

第一個日期對應於原始數據集的第一次購買和最後一次的第二次購買之一。

這些類都是「日期」。

我怎樣才能合併兩個數據集的「日期」,即使很明顯,他們有不同的行的長度?我想有一個數據幀與每天日期」爲第一,以及「數量」關於第二一個,與那裏購買沒有發生。

問候

+0

這將是一個左連接操作:)您可以使用dplyr軟件包爲該 – ira

回答

1

使用基礎R:

# create sample data frame with sales data 
test <- data.frame(date = as.Date(c("2017/08/12", "2017/08/15", "2017/09/02")), quantity = c(3,2,1)) 
# create the date range 
dates <- data.frame(date = seq(min(test$date), max(test$date), by = "day")) 
# perform the left join 
# (keeping all rows from "dates", and joining the sales dataset to them) 
result <- merge(dates, test, by.y = "date", by.x = "date", all.x = TRUE) 

在合併功能,by.y和by.x是用於連接數據集,而all.x告訴你的列,所有行從x(在這種情況下爲dates)應該保留在結果數據幀中。

+0

然後可以將NA轉換爲0後:result [is.na(result)] < - 0 –