R:For()循环检查日期是否在单独对象中的两个日期之间

时间:2013-09-15 23:01:06

标签: r

提前致谢!

我有两个大数据集,都包含感兴趣的日期/时间字段列。第一个(head()粘贴在下面),有一个我感兴趣的日期/时间字段 - “RoundDateTimeGMT”列。该数据表相当大(超过500,000行)。该数据特定于PumaID列所注明的个人。

   PumaID   RoundDateTimeGMT
1    P01    3/3/2011 0:00
2    P01    3/3/2011 0:00
3    P01    3/3/2011 0:00
4    P01    3/3/2011 0:00
5    P01    3/3/2011 0:00
6    P01    3/3/2011 0:00

第二个数据集有两个日期/时间字段,分别代表开始和结束时间(分别为'FstClstrTime'和'LastClstrTime')(下图)。所有时间都使用as.POSIXct()转换为可识别的R格式。如上所述,这些数据也特定于PumaID列所注明的个体。

   PumaID   FstClstrTime       LastClstrTime
1    P01    8/29/2011 6:01     8/29/2011 8:01
2    P01      <NA>                  <NA>
3    P01    9/10/2011 2:00     9/12/2011 12:01
4    P01    9/9/2011 8:00      9/9/2011 14:01
5    P01    9/7/2011 8:01      9/8/2011 10:00
6    P01    9/4/2011 10:01     9/6/2011 12:01

我的目标是在第一个数据集中创建一个新的二进制列,指示RoundDateTimeGMT是否介于每个人的第二个数据表的“FstClstrTime”和“LastClstrTime”之间。如果每个数据表的PumaID匹配,我只需要检查RoundDateTimeGMT是否在'FstClstrTime'和'LastClstrTime'之间。我认为这可以通过for()循环来完成,但我可以接受任何建议。我只需要检查每个人的每个FstClstrTime'和'LastClstrTime的每个RoundDateTimeGMT(再次超过500,000)。

使用大型数据集dput()不起作用,因此不会附加任何数据。我希望你仍然可以提供一些如何实现上述目标的建议。

亲切的问候!

0 个答案:

没有答案