【问题标题】:Matching Dates in RR中的匹配日期
【发布时间】:2018-02-25 09:59:15
【问题描述】:

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

我想把它转换成每日数据,完成原始数据集,所以我创建了一个序列:

a <- seq(as.Date("2013/11/19"), as.Date("2017/04/22"), "days")

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

这些类都是“日期”。

我如何合并两个数据集按“日期”,即使显然它们有不同的行长?我想要一个数据框,dailyDate”作为firstcolumn和“Quantity ”在第二个 一个,没有发生购买的

【问题讨论】:

  • 这将是一个左连接操作 :) 你可以使用 dplyr 包

标签: r date merge


【解决方案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)的所有行都应保留在生成的数据框。

【讨论】:

  • 然后可以将NA转换为0:result[is.na(result)]
猜你喜欢
  • 2013-04-21
  • 2020-12-24
  • 2018-11-07
  • 2012-03-05
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
相关资源
最近更新 更多