Получение номеров недель григорианского календаря (аналогично Excel) в R

#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)

но они не дают того же результата, что и в вопросе.