r: создать пользовательскую функцию "неделя" - PullRequest
0 голосов
/ 21 ноября 2018

Я пишу функцию, которая возьмет мое поле df$date (которое является ежедневным POSIXct date (по дням) и создаст новую переменную с именем df$wbm (wbm = неделя, начинающаяся с понедельника). Я знаю математикуработает, потому что я сделал это в Excel, но синтаксис не работает, см. ниже:

df$wbm<- if (weekdays(df$date) == "Sunday") {
  df$date - days(6)
} else { df$date + (days(2) - df$date)
  }

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Просматривая несколько ссылок, я нашел последний ответ здесь наиболее полезным: Как найти Предыдущее воскресенье в R

Это то, что я придумал, используяlubridate:

> df$wbm<- lubridate::floor_date(df$date, "week") + days(1)
> weekdays(df$wbm)[1]
[1] "Monday"
0 голосов
/ 21 ноября 2018

%w может быть аргументом format, который вы ищете: это день недели, когда воскресенье 0

> x <- as.POSIXct('2018-11-20 12:12:12')
> format(x, "%w")
[1] "2"
...