R:根据时间差分组子行

时间:2016-01-12 13:30:34

标签: r dataframe subset

我有以下数据框:

group_id   date_show   date_med
1          1976-02-07  1971-04-14
1          1976-02-09  1976-12-11
1          2011-03-02  1970-03-22
2          1993-08-04  1997-06-13
2          2008-07-25  2006-09-01
2          2009-06-18  2005-11-12
3          2009-06-18  1999-11-03

我希望以这样的方式对我的数据框进行子集,即新数据框仅显示date_show的值超过10天的行,但这种情况应该仅适用于每个组。即如果date_show列中的值相隔不到10天,但group_id s不同,我需要保留两个条目。根据上表,我希望我的结果如下:

group_id   date_show   date_med
1          1976-02-07  1971-04-14
1          2011-03-02  1970-03-22
2          1993-08-04  1997-06-13
2          2008-07-25  2006-09-01
2          2009-06-18  2005-11-12
3          2009-06-18  1999-11-03

删除哪一行并不重要,因为我首先进行子集化的原因是在应用此条件后计算我剩下的行数。

我尝试过使用diff函数,但我不确定如何以最简单的方式解决它,因为这个问题已经在另一个sapply函数中,所以我试图避免任何一种额外的循环(在这种情况下是group_id)。

我正在使用的df有大约10万行。理想情况下,我想用base R执行此操作,因为我无权在我正在处理的机器上安装任何其他软件包,但如果这是不可能的(或者如果使用额外的软件包来解决这个问题会明显更好),我可以尝试让我的管理员安装它。

任何提示都将不胜感激!

0 个答案:

没有答案