2016-05-31 2 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

Использование 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 
Смежные вопросы