#r #date #calendar #numbers
#r #Дата #Календарь #числа
Вопрос:
Как мне получить следующие результаты в R?
Дата | Номер недели |
---|---|
12-27-2020 | 53 |
12-28-2020 | 53 |
12-29-2020 | 53 |
12-30-2020 | 53 |
12-31-2020 | 53 |
1-1-2021 | 1 |
Другими словами, я хочу, чтобы воскресенье было первым днем недели, а последний день года включался в последнюю неделю. он же неделя 53.
Комментарии:
1. Не могли бы вы проверить, работает ли это для вас
lubridate::isoweek(as.Date(df$Date,'%m-%d-%Y'))
?2. Спасибо, что поделились. Не совсем. Этот метод рассматривает понедельник как день 1 и включает в себя с 1 по 3 января 2021 года также на 53-й неделе…
3.@Roham
%U
ИспользуетSunday as Day 1
format(as.Date(df1$Date, "%m-%d-%Y"), '%U')
4. Я считаю, что это зависит от года. Технически, 4 января 2021 года приходится на первую неделю 2021 года.
Ответ №1:
Это дает те же значения, что и в вопросе:
ch <- c("12-27-2020", "12-28-2020", "12-29-2020", "12-30-2020", "12-31-2020", "1-1-2021")
d <- as.Date(ch, "%m-%d-%Y")
as.numeric(format(d, "%U")) 1
## [1] 53 53 53 53 53 1
Также есть
as.numeric(format(d, "%V"))
lubridate::isoweek(d)
ISOweek::ISOweek(d)
но они не дают того же результата, что и в вопросе.