从R中的一组日期中提取工作日

Hin*_*uly 3 r lubridate

我知道使用该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)

任何帮助都将是非常有益的.谢谢.

Pau*_*tra 8

使用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)


akr*_*run 5

我们可以使用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 - 此平台上当前语言环境中的缩写工作日名称。(还匹配输入的全名:在某些语言环境中,没有名称的缩写。)


Any*_*Sti 5

library(lubridate)

date <- as.Date(yourdata$Date_of_order, format = "%Y/%m/%d")
   
yourdata$WeekDay <- weekdays(date)
             
Run Code Online (Sandbox Code Playgroud)