R конвертирует время во время суток - PullRequest
1 голос
/ 17 июня 2020

Есть ли функция или элегантный способ преобразования времени в удобную для пользователя строку времени дня?

Например, если сейчас 9 утра, то

> time_of_day(Sys.time())
[1] "morning"

Если было 15:00, он вернет

> time_of_day(Sys.time())
[1] "afternoon"

Ответы [ 2 ]

3 голосов
/ 17 июня 2020

Ронак меня опередил, но вот вариант с использованием lubridate и оператора ifelse:

time_day <- function(current_time) {
ifelse(am(current_time) == 'TRUE',
   'morning',
   'afternoon')
}


time_day(Sys.time())
3 голосов
/ 17 июня 2020

Я не знаю, существует ли такая функция, но было бы нетрудно написать одну из своих собственных. Вот способ, основанный на часах дня.

time_of_day <- function(time) {

   hr <- lubridate::hour(time)
   dplyr::case_when(hr > 6 & hr < 12 ~ 'morning', 
                    hr >= 12 & hr < 16 ~ 'afternoon', 
                    hr >= 16 & hr <= 20 ~ 'evening', 
                    TRUE ~ 'night')
}

time_of_day(Sys.time())
#[1] "morning"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...