使用不包括周末的日期向量在 R 中创建日期列。
r programmingserver side programmingprogramming
如果我们有一个包含一周内所有天数的日期向量,那么我们可以使用该向量通过排除周末来创建日期列,并借助对向量进行子集化,如下面的示例所示。对向量进行子集化后,我们只需要在 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