我知道使用该lubridate包,我可以为每个输入日期生成相应的工作日.我现在正在处理一个包含大量日期条目的大型数据集,我希望为每个日期条目提取工作日.我认为搜索每个日期并找工作日是不可能的.我希望有一个功能,允许我从我的数据框插入我的日期列,并将产生与框架的每个日期对应的天数.
我的框架就像
uinq_id Product_ID Date_of_order count
1 Aarkios04_2014-09-09 Aarkios04 2014-09-09 10
2 ABEE01_2014-08-18 ABEE01 2014-08-18 1
3 ABEE01_2014-08-19 ABEE01 2014-08-19 0
4 ABEE01_2014-08-20 ABEE01 2014-08-20 0
5 ABEE01_2014-08-21 ABEE01 2014-08-21 0
6 ABEE01_2014-08-22 ABEE01 2014-08-22 0
Run Code Online (Sandbox Code Playgroud)
我想要生成
uinq_id Product_ID Date_of_order count weekday
1 Aarkios04_2014-09-09 Aarkios04 2014-09-09 10 Tues
2 ABEE01_2014-08-18 ABEE01 2014-08-18 1 Mon
3 ABEE01_2014-08-19 ABEE01 2014-08-19 0 Tues
4 ABEE01_2014-08-20 ABEE01 2014-08-20 0 Wed
5 ABEE01_2014-08-21 ABEE01 2014-08-21 0 Thurs
6 ABEE01_2014-08-22 ABEE01 2014-08-22 0 Fri
Run Code Online (Sandbox Code Playgroud)
任何帮助都将是非常有益的.谢谢.
使用weekdays基数R,您可以同时为矢量执行此操作:
temp = data.frame(timestamp = Sys.Date() + 1:20)
> head(temp)
timestamp
1 2016-06-01
2 2016-06-02
3 2016-06-03
4 2016-06-04
5 2016-06-05
6 2016-06-06
temp$weekday = weekdays(temp$timestamp)
> head(temp)
timestamp weekday
1 2016-06-01 Wednesday
2 2016-06-02 Thursday
3 2016-06-03 Friday
4 2016-06-04 Saturday
5 2016-06-05 Sunday
6 2016-06-06 Monday
Run Code Online (Sandbox Code Playgroud)
我们可以使用format来获取输出
df1$weekday <- format(as.Date(df1$Date_of_order), "%a")
df1$weekday
#[1] "Tue" "Mon" "Tue" "Wed" "Thu" "Fri"
Run Code Online (Sandbox Code Playgroud)
根据 ?strptime
%a - 此平台上当前语言环境中的缩写工作日名称。(还匹配输入的全名:在某些语言环境中,没有名称的缩写。)
library(lubridate)
date <- as.Date(yourdata$Date_of_order, format = "%Y/%m/%d")
yourdata$WeekDay <- weekdays(date)
Run Code Online (Sandbox Code Playgroud)