【发布时间】:2021-09-24 14:26:41
【问题描述】:
我正在尝试使用if else 做一个相当复杂的过滤器,但我一直在转圈。
以下是数据示例:
individual_id born mom_id trap_date
13212 2013-03-16 11926 2014-06-26
13213 2013-03-16 11926 2013-07-23
13214 2013-03-16 11926 2015-06-01
13212 2013-03-16 11926 2014-06-26
11926 2010-04-08 10422 2013-01-23
11926 2010-04-08 10422 2013-02-01
11926 2010-04-08 10422 2013-03-08
11926 2010-04-08 10422 2013-03-12
11926 2010-04-08 10422 2013-04-23
11926 2010-04-08 10422 2013-05-01
11926 2010-04-08 10422 2013-08-23
11926 2010-04-08 10422 2013-09-01
11926 2010-04-08 10422 2013-10-23
11926 2010-04-08 10422 2013-12-01
我有一个名为mom_id 的专栏,这些人也出现在individual_id 专栏中。
我想删除所有出现的 trap_date 记录 - 距离 born 日期 35 天或 + 70 天的 mom_id,仅当她也出现在individual_id 专栏。
因此,在此示例中,我想删除 2013 年 2 月 9 日 (2013-02-09) 和 2013 年 5 月 25 日 (2013-05-25) 之间的所有 trap_date 记录/行,因为 born 日期mom_id 11926 是 2013 年 3 月 16 日 (2013-03-16)。
想要的结果:
individual_id born mom_id trap_date
13212 2013-03-16 11926 2014-06-26
13213 2013-03-16 11926 2013-07-23
13214 2013-03-16 11926 2015-06-01
13212 2013-03-16 11926 2014-06-26
11926 2010-04-08 10422 2013-01-23
11926 2010-04-08 10422 2013-02-01
11926 2010-04-08 10422 2013-08-23
11926 2010-04-08 10422 2013-09-01
11926 2010-04-08 10422 2013-10-23
11926 2010-04-08 10422 2013-12-01
我们将不胜感激dplyr 的解决方案,但在这一点上我将不胜感激!
【问题讨论】:
-
也许,我被误导了,但我相信
mom_id11926 的出生日期是 2010-04-08 而不是 2013-03-16,这是mom_id19262 的出生日期,不是吗? id 看起来非常相似。 -
这是一个公平的问题!因为个人同时出现在
mom_id和individual_id列中,所以很难弄清楚born对应的是什么。但是,born是必须从mom_id过滤的日期(因此mom_id==11926的born日期为2013-03-16和mom_id==10422的born日期为2010-04-08)。 -
感谢您的澄清!
标签: r if-statement filter dplyr