从R中的一组日期提取工作日
问题描述:
我知道使用lubridate
包,我可以为每个日期生成相应的工作日。我现在正在处理一个有大量日期条目的大数据集,我希望为每个日期条目提取平日。我认为搜索每个日期并找到工作日是不可能的。我很想拥有一个功能,允许我从我的数据框中插入日期列,并将生成与框架的每个日期相对应的日期。从R中的一组日期提取工作日
我的帧像
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
我试图产生
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
任何帮助将是非常有益的。 谢谢。
答
我们可以使用format
得到输出
df1$weekday <- format(as.Date(df1$Date_of_order), "%a")
df1$weekday
#[1] "Tue" "Mon" "Tue" "Wed" "Thu" "Fri"
根据?strptime
%一 - 在这个平台上当前区域简写的星期几。 (也匹配全名输入:在某些地区有名字的没有 缩写。)
答
从基础R使用weekdays
您可以为载体一下子做到这一点:
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
它工作得很好。我是R.的新手,你能告诉我“%a”意味着什么吗? –
@HindolGanguly根据'?strptime''%a - 此平台上当前语言环境中的缩写星期几名称。 (在输入时也匹配全名:在某些语言环境中,没有名称的缩写。)' – akrun
好吧,那很好。我还可以使用相同的软件包查找周数和月份名称吗?我应该用什么来代替“%a”? –