基于日期范围的R子集
假设我有一个包含3列的数据集,a、B和C,其中包含大量行的日期。如果C中的日期不在a和B中的日期范围内,我如何创建一个子集来忽略这些行?您是否有以下问题 假设您的初始数据帧为df,如下所示:基于日期范围的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
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。请看一看,并尝试为我们提供一个最小的可重复的例子。此外,这种操作被称为“子集”-这将帮助您轻松地谷歌答案。如果你找不到任何东西(不太可能),那么在这里问一个问题(并向我们提供一些数据和你迄今为止所做的尝试)。可能重复的