2016-06-29 4 views
-2

У меня есть следующий кадр данных:Как извлечь номер года и недели с использованием базы R?

id created_at     year_weak 
1  2016-01-01T12:11:03.383Z 2016-01 
2  2016-01-04T12:11:03.383Z 2016-01 
3  2016-01-06T12:11:03.383Z 2016-01 
4  2016-01-11T12:11:03.383Z 2016-02 
5  2016-01-12T12:11:03.383Z 2016-02 

В настоящее время я следующий код с помощью lubridate пакета:

paste(year(as.Date(df$created_at)),week(as.Date(df$created_at)),sep = "-") 

я хочу сделать то же самое, используя базовый R, как я могу сделать это в базе Р?

+1

является тип данных "created_at" строки или уже является '' date' или POSIXct'? –

+0

На самом деле, это фактор, который я не изменил. – sanaz

ответ

3

Это следующие работы с базой R команды:

year <- format(as.Date(df$created_at)+2, "%Y") 
week <- format(as.Date(df$created_at)+2, "%U") 

paste(year,week,sep = "-") 

Примечание: Вы должны добавить 2 дня, потому что 1 января 2016 был пятница, и это даст вам неделю 0. В format() неделя начинается с воскресенья.

С уважением,
J_F

+0

спасибо, если я хочу применить его к разным годам с другим стартовым днем? – sanaz

+0

этот код работает хорошо на протяжении многих лет? – sanaz

+1

читать инструкцию: «% U Неделя года в виде десятичного числа (00-53) с использованием воскресенья в качестве первого дня 1 недели (и, как правило, с первым воскресеньем года как день 1 недели 1). Американская конвенция. –

Смежные вопросы