【发布时间】:2021-09-08 20:43:47
【问题描述】:
我想根据下面的数据集提出一个条件。我相信if这个条件是可以用的,如果不行,可以换个方式。
我想提出如下条件:
如果我选择的date2 大于date1(date1 将始终只是一个日期,正如您在我的df dataset 中看到的那样),计算如下:date2 - date1 + 1 = X -> 这个 X 将是将从我的df dataset 中删除的 DR 列的数量。
我将提供我的df dataset 的代码,然后提供一个示例供您查看。
df <- structure(
list(date1 = c("2021-06-28","2021-06-28","2021-06-28","2021-06-28","2021-06-28",
"2021-06-28","2021-06-28","2021-06-28"),
date2 = c("2021-04-02","2021-04-03","2021-04-08","2021-04-09","2021-04-10","2021-07-01","2021-07-02","2021-07-03"),
Week= c("Friday","Saturday","Thursday","Friday","Saturday","Thursday","Friday","Monday"),
DR01_PV = c(4,1,4,3,3,4,3,6), DR02_PV= c(4,2,6,7,3,2,7,4),DR03_PV = c(9,5,4,3,3,2,1,5),
DR04_PV = c(5,4,3,3,6,2,1,9),DR05_PV = c(5,4,5,3,6,2,1,9),
DR06_PV = c(2,4,3,3,5,6,7,8),DR07_PV = c(2,5,4,4,9,4,7,8)),
class = "data.frame", row.names = c(NA, -8L))
df
date1 date2 Week DR01_PV DR02_PV DR03_PV DR04_PV DR05_PV DR06_PV DR07_PV
1 2021-06-28 2021-04-02 Friday 4 4 9 5 5 2 2
2 2021-06-28 2021-04-03 Saturday 1 2 5 4 4 4 5
3 2021-06-28 2021-04-08 Thursday 4 6 4 3 5 3 4
4 2021-06-28 2021-04-09 Friday 3 7 3 3 3 3 4
5 2021-06-28 2021-04-10 Saturday 3 3 3 6 6 5 9
6 2021-06-28 2021-07-01 Thursday 4 2 2 2 2 6 4
7 2021-06-28 2021-07-02 Friday 3 7 1 1 1 7 7
8 2021-06-28 2021-07-03 Monday 6 4 5 9 9 8 8
示例:
如果我选择 01/07 (date2),这是一个大于 date1 (28/06) 的日期,我们有以下内容:
date2 - date1 + 1 = X
01/07 - 28/06 + 1 = 3 + 1 = 4
这4表示我的df dataset会删除前4个DR列,即DR01_PV、DR02_PV、DR03_PV和DR04_PV。我的新数据集 (df1) 将是:
df1
date1 date2 Week DR05_PV DR06_PV DR07_PV
1 2021-06-28 2021-04-02 Friday 5 2 2
2 2021-06-28 2021-04-03 Saturday 4 4 5
3 2021-06-28 2021-04-08 Thursday 5 3 4
4 2021-06-28 2021-04-09 Friday 3 3 4
5 2021-06-28 2021-04-10 Saturday 6 5 9
6 2021-06-28 2021-07-01 Thursday 2 6 4
7 2021-06-28 2021-07-02 Friday 1 7 7
8 2021-06-28 2021-07-03 Monday 9 8 8
如果我选择 02/07 (date2),这是一个大于 date1 (28/06) 的日期,我们有以下内容:
date2 - date1 + 1 = X
02/07 - 28/06 + 1 = 4 + 1 = 5
这5表示我的df dataset会删除前5个DR列,即DR01_PV、DR02_PV、DR03_PV、DR04_PV和DR05_PV。我的新数据集 (df2) 将是:
df2
date1 date2 Week DR06_PV DR07_PV
1 2021-06-28 2021-04-02 Friday 2 2
2 2021-06-28 2021-04-03 Saturday 4 5
3 2021-06-28 2021-04-08 Thursday 3 4
4 2021-06-28 2021-04-09 Friday 3 4
5 2021-06-28 2021-04-10 Saturday 5 9
6 2021-06-28 2021-07-01 Thursday 6 4
7 2021-06-28 2021-07-02 Friday 7 7
8 2021-06-28 2021-07-03 Monday 8 8
为了更容易理解,我尝试插入示例。
欢迎任何帮助!
非常感谢!
【问题讨论】:
标签: r