在R中匹配日期

时间:2017-09-16 10:02:20

标签: r date merge

早上好,

我有一个关于购买店主的数据框。它们不是每天都发生的。 它有两列:第一列描述日期,第二列是数量在该日期购买的。

我想将其转换为每日数据,完成原始数据集;所以我创建了一个序列: “a< - seq(as.Date(”2013/11/19“),as.Date(”2017/04/22“),”days“)”

第一个日期对应于原始数据集的第一个购买日期和最后一个日期中的第二个日期。

这些类都是“ Date ”。

我怎样才能合并两个数据集“date”,即使它们的行长度不同呢?我希望数据框的每日日期”为第一个 ,并且“数量第二 一个,但没有发生购买。

最好的问候

1 个答案:

答案 0 :(得分: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应保留在结果数据框中。