使用不包括周末的日期向量在 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