基于日期范围的R子集

基于日期范围的R子集,r,conditional-statements,subset,R,Conditional Statements,Subset,假设我有一个包含3列的数据集,a、B和C,其中包含大量行的日期。如果C中的日期不在a和B中的日期范围内,我如何创建一个子集来忽略这些行?您是否有以下问题 假设您的初始数据帧为df,如下所示: df A B C 1 2016-02-16 2016-03-21 2016-01-01 2 2016-07-07 2016-06-17 2016-01-31 3 2016-05-19 2016-09-10 2016-03-01 4 2016

假设我有一个包含3列的数据集,a、B和C,其中包含大量行的日期。如果C中的日期不在a和B中的日期范围内,我如何创建一个子集来忽略这些行?

您是否有以下问题

假设您的初始数据帧为df,如下所示:

df
            A          B          C
1  2016-02-16 2016-03-21 2016-01-01
2  2016-07-07 2016-06-17 2016-01-31
3  2016-05-19 2016-09-10 2016-03-01
4  2016-01-14 2016-08-21 2016-04-01
5  2016-09-02 2016-06-15 2016-05-01
6  2016-05-09 2016-07-17 2016-05-31
7  2016-06-13 2016-06-23 2016-07-01
8  2016-09-17 2016-03-11 2016-07-31
9  2016-03-09 2016-05-13 2016-08-30
10 2016-01-20 2016-09-01 2016-09-30
现在,如果您执行以下子集操作,我们将获得以下数据帧子集:

df.sub <- df[apply(df, 1, function(x) (x[3] < min(x[1], x[2])) | 
                                      (x[3] > max(x[1], x[2]))),]
df.sub
            A          B          C
1  2016-02-16 2016-03-21 2016-01-01
2  2016-07-07 2016-06-17 2016-01-31
3  2016-05-19 2016-09-10 2016-03-01
5  2016-09-02 2016-06-15 2016-05-01
7  2016-06-13 2016-06-23 2016-07-01
9  2016-03-09 2016-05-13 2016-08-30
10 2016-01-20 2016-09-01 2016-09-30
df.sub-max(x[1],x[2]),]
潜艇
A、B、C
1  2016-02-16 2016-03-21 2016-01-01
2  2016-07-07 2016-06-17 2016-01-31
3  2016-05-19 2016-09-10 2016-03-01
5  2016-09-02 2016-06-15 2016-05-01
7  2016-06-13 2016-06-23 2016-07-01
9  2016-03-09 2016-05-13 2016-08-30
10 2016-01-20 2016-09-01 2016-09-30

希望有帮助。

嗨,杰森,欢迎来到StackOverflow。请看一看,并尝试为我们提供一个最小的可重复的例子。此外,这种操作被称为“子集”-这将帮助您轻松地谷歌答案。如果你找不到任何东西(不太可能),那么在这里问一个问题(并向我们提供一些数据和你迄今为止所做的尝试)。可能重复的