2016-05-31 103 views
-2

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

任何幫助將是非常有益的。 謝謝。

回答

1

我們可以使用format得到輸出

df1$weekday <- format(as.Date(df1$Date_of_order), "%a") 
df1$weekday 
#[1] "Tue" "Mon" "Tue" "Wed" "Thu" "Fri" 

根據?strptime

%一 - 在這個平臺上當前區域簡寫的星期幾。 (也匹配全名輸入:在某些地區有名字的沒有 縮寫。)

+0

它工作得很好。我是R.的新手,你能告訴我「%a」意味着什麼嗎? –

+1

@HindolGanguly根據'?strptime''%a - 此平臺上當前語言環境中的縮寫星期幾名稱。 (在輸入時也匹配全名:在某些語言環境中,沒有名稱的縮寫。)' – akrun

+0

好吧,那很好。我還可以使用相同的軟件包查找週數和月份名稱嗎?我應該用什麼來代替「%a」? –

4

從基礎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