【发布时间】:2020-04-28 03:49:12
【问题描述】:
我们有两个数据框,第一个包含一组产品的播放广告日期,第二个包含同一组产品的销售日期。
我们希望在广告之后为每个产品的每个广告附加最近的销售。
这是输入的代码:
original_table = data.table(article = c('A','A','A','B','B','B','B'),
date_ad = as.Date(c('2010-04-09','2011-07-12','2012-05-22','2011-07-12','2014-02-02','2015-04-13','2016-08-12'),))
> original_table
article date_ad
1: A 2010-04-09
2: A 2011-07-12
3: A 2012-05-22
4: B 2011-07-12
5: B 2014-02-02
6: B 2015-04-13
7: B 2016-08-12
table_to_join = data.table(article = c('A','A','B','B','B'),
date_sale = as.Date(c('2010-12-15','2012-08-20','2013-12-01','2016-01-05','2017-01-20'),))
> table_to_join
article date_sale
1: A 2010-12-15
2: A 2012-08-20
3: B 2013-12-01
4: B 2016-01-05
5: B 2017-01-20
将第二个表中的日期附加到第一个表中的日期后,输出应具有以下格式:
> result
article date_ad date_sale
1: A 2010-04-09 2010-12-15
2: A 2011-07-12 2012-08-20
3: A 2012-05-22 2012-08-20
4: B 2011-07-12 2013-12-01
5: B 2014-02-02 2016-01-05
6: B 2015-04-13 2016-01-05
7: B 2016-08-12 2017-01-20
P.S : 对于每篇文章,original_table 的行数可能比table_to_join 多得多。 original_table 中的多行可以链接到 table_to_join 的同一行。
我们怎样才能有效地做到这一点?
【问题讨论】:
标签: r datetime data.table