在R中用日期作为日期间隔重构数据帧

在R中用日期作为日期间隔重构数据帧,r,dataframe,R,Dataframe,我有一个数据集,基本上是这样的,给出了每个家庭的活动,以及各个活动的开始和结束日期: campaign_id household_id campaign_type start_date end_date 1 26 1 Type B 2016-12-28 2017-02-19 2 8 1 Type A 2017-05-08 2017-06-25 3 12 1

我有一个数据集,基本上是这样的,给出了每个家庭的活动,以及各个活动的开始和结束日期:

  campaign_id household_id campaign_type start_date end_date     
1 26          1            Type B        2016-12-28 2017-02-19
2 8           1            Type A        2017-05-08 2017-06-25
3 12          1            Type B        2017-07-12 2017-08-13
4 13          1            Type A        2017-08-08 2017-09-24
5 18          1            Type A        2017-10-30 2017-12-24
6 20          1            Type C        2017-11-27 2018-02-05
7 22          1            Type B        2017-12-06 2018-01-07
8 23          1            Type B        2017-12-28 2018-02-04
我用给定的结构创建了一个新的数据框,它将显示在给定的时间内,对于给定的家庭,哪些活动是活动的(将所有活动编号作为列,我在这里省略了其余部分):

我要做的是将给定日期中的活动促销分配为第二个数据框中的行。例如,如果household_id 1在2016-11-14年开展了活动2,但没有其他活动,那么它将如下所示:

   household_id       date campaign1 campaign2 campaign3 campaign4
1             1 2016-11-14         0         1         0         0

我该如何管理这种构造,我应该在初始数据帧中使用for循环并在每个循环中分配给第二个循环,还是有更好更快的方法?提前感谢。

那么,到目前为止您尝试了什么?@jay.sf我正在考虑像这样使用by()函数:by(dataFrame1,1:nrow(dataFrame1),function(row)),用一个函数检查第二个数据框(可能是elseifs)中没有放置0和1的列,并相应地写入数据,但从理论上讲,它看起来非常乏味和缓慢。@AtakanCavuslu-如果您提供带有
住户id
和活动编号的其他示例数据,可能会有所帮助-这些数据来自哪里?在您的示例中,您只有活动2—为什么?如果你能提供一个数据源的基本示例(你从什么开始),并指出你的最终结果应该是什么样子(你想得到什么结果),那么可以提出其他建议?还有,到目前为止你做了哪些尝试?@jay.sf我想用by()函数,比如:by(dataFrame1,1:nrow(dataFrame1),function(row))使用一个函数检查第二个数据框中的哪个列不放0和1(可能是用elseifs),并相应地写入数据,但从理论上看,这看起来非常乏味和缓慢。@AtakanCavuslu-如果您提供带有
家庭id
和活动编号的其他示例数据,可能会有所帮助-这些数据来自哪里?在您的示例中,您只有活动2—为什么?如果您可以为数据源提供一个基本示例(您从什么开始),并指出您的最终结果应该是什么样子(您希望最终得到什么),那么可以提出其他建议吗?
   household_id       date campaign1 campaign2 campaign3 campaign4
1             1 2016-11-14         0         1         0         0