在R语言中使用日期向量创建日期列,并排除周末。


如果我们有一个包含一周所有日期的日期向量,那么我们可以利用子集化向量来创建日期列,同时排除周末,如下面的示例所示。子集化向量后,我们只需要将向量传递到data.frame函数中。

示例1

考虑下面的日期向量:

x<-seq(as.Date("2021-07-06"),as.Date("2021-07-25"),by = 1)

为了子集化x并仅提取上面创建的数据框中的工作日,请将以下代码添加到上面的代码段中:

x<-seq(as.Date("2021-07-06"),as.Date("2021-07-25"),by = 1)
x<-x[!weekdays(x) %in% c("Saturday","Sunday")]

为了在上面创建的数据框中创建x的日期列,请将以下代码添加到上面的代码段中:

x<-seq(as.Date("2021-07-06"),as.Date("2021-07-25"),by = 1)
x<-x[!weekdays(x) %in% c("Saturday","Sunday")]
df1<-data.frame(x)
df1

输出

如果您将上面给出的所有代码段作为一个程序执行,则会生成以下输出:

        x
1  2021-07-06
2  2021-07-07
3  2021-07-08
4  2021-07-09
5  2021-07-12
6  2021-07-13
7  2021-07-14
8  2021-07-15
9  2021-07-16
10 2021-07-19
11 2021-07-20
12 2021-07-21
13 2021-07-22
14 2021-07-23

示例2

考虑下面的日期向量:

y<-seq(as.Date("2021-01-01"),as.Date("2021-01-31"),by = 1)

为了子集化x并仅提取上面创建的数据框中的工作日,请将以下代码添加到上面的代码段中:

y<-seq(as.Date("2021-01-01"),as.Date("2021-01-31"),by = 1)
y<-y[!weekdays(y) %in% c("Saturday","Sunday")]

为了在上面创建的数据框中创建y的日期列,请将以下代码添加到上面的代码段中:

y<-seq(as.Date("2021-01-01"),as.Date("2021-01-31"),by = 1)
y<-y[!weekdays(y) %in% c("Saturday","Sunday")]
df2<-data.frame(y)
df2

输出

如果您将上面给出的所有代码段作为一个程序执行,则会生成以下输出:

       y
1  2021-01-01
2  2021-01-04
3  2021-01-05
4  2021-01-06
5  2021-01-07
6  2021-01-08
7  2021-01-11
8  2021-01-12
9  2021-01-13
10 2021-01-14
11 2021-01-15
12 2021-01-18
13 2021-01-19
14 2021-01-20
15 2021-01-21
16 2021-01-22
17 2021-01-25
18 2021-01-26
19 2021-01-27
20 2021-01-28
21 2021-01-29

示例3

考虑下面的日期向量:

z<-seq(as.Date("2021-04-01"),as.Date("2021-04-30"),by=1)

为了子集化x并仅提取上面创建的数据框中的工作日,请将以下代码添加到上面的代码段中:

z<-seq(as.Date("2021-04-01"),as.Date("2021-04-30"),by=1)
z<-z[!weekdays(z) %in% c("Saturday","Sunday")]

为了在上面创建的数据框中创建z的日期列,请将以下代码添加到上面的代码段中:

z<-seq(as.Date("2021-04-01"),as.Date("2021-04-30"),by=1)
z<-z[!weekdays(z) %in% c("Saturday","Sunday")]
df3<-data.frame(z)
df3

输出

如果您将上面给出的所有代码段作为一个程序执行,则会生成以下输出:

       z
1  2021-04-01
2  2021-04-02
3  2021-04-05
4  2021-04-06
5  2021-04-07
6  2021-04-08
7  2021-04-09
8  2021-04-12
9  2021-04-13
10 2021-04-14
11 2021-04-15
12 2021-04-16
13 2021-04-19
14 2021-04-20
15 2021-04-21
16 2021-04-22
17 2021-04-23
18 2021-04-26
19 2021-04-27
20 2021-04-28
21 2021-04-29
22 2021-04-30

更新于:2021年10月28日

3K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告