在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+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.