我是R新手,目前正在处理一些降雨数据。我有两个名为df1和df2的数据框。如何为r中特定日期范围的行子集?
df1
Date Duration_sum
5/28/2014 110
5/31/2014 20
5/31/2014 20
6/1/2014 10
6/1/2014 110
6/3/2014 140
6/4/2014 40
6/5/2014 60
6/12/2014 10
6/14/2014 100
df2
Date PercentRemoval
6/2/2014 25.8
6/5/2014 78.58
6/6/2014 15.6
6/13/2014 70.06
我想从DF2查找的具体日期,DF1。例如,如果来自df2的第一个日期在df1中可用,我希望在该特定日期的范围内且在此之前3天在df1中对行进行子集。如果该日期不可用,那么只需查找前3天。
如果前3天的数据不可用,那么它将提取尽可能多的天数,但最大限制是在df2的特定日期之前3天。如果df1中没有可用的日期,则忽略该日期并在df2中查找下一个日期。另外,例如,2014年6月6日之前的3天以df1提供,但我们已经在6/5/2014之前考虑过那些日子。所以,6/6/2014被忽略了。
所得数据帧应该是这个样子:
df3
col_1 Date Duration_sum
5/31/2014 20
5/31/2014 20
6/1/2014 10
6/2/2014 6/1/2014 110
6/3/2014 140
6/4/2014 40
6/5/2014 6/5/2014 60
6/13/2014 6/12/2014 10
我已经使用这个代码:
df3 <- df1[df1$Date %in% as.Date(c(df2)),]
这段代码让我对具体的日期,但不是前3天的结果。我真的很感激如果有人可以帮我解决这个代码或其他代码。提前致谢。
太感谢你了!这正是我一直在寻找:) – Sami
@Sami快乐来帮助你。 :) – jazzurro
我非常需要你的帮助。如果我想解决此处提及的相同问题,会发生什么情况,但在这种情况下,我不想从df2中删除任何日期,该日期与df1中的前一个日期的间隔不超过3天。例如,在df2中,对于6/6/2014,在df1的3天范围内有日期。所以,在这种情况下,我只想提取与之前的日期(6/5/2014)在df2中相同的值。 – Sami