如何从 lubridate 中提取时间?
How to extract time from lubridate?
我想从格式为 "DD-M-YYYY HH:MM" 的类型因子向量中提取日、月、时和分向量(例如“14-3-2018 00:34 ”)。
使用 Lubridate,可以按预期检索月和日,但是当我尝试检索小时和分钟时,它 returns 全为零。
我试过以下方法:
dataset$Month = month(dataset$msgDateTime)
dataset$Day = day(dataset$msgDateTime)
dataset$Hour = hour(dataset$msgDateTime)
dataset$Minute = minute(dataset$msgDateTime)
所以前两行产生了我想要的结果,但最后两行只产生了零。
我怎样才能让它工作?
这是一个使用 lubridate
的解决方案:
library(lubridate)
library(dplyr)
factor_datetime <- factor("14-3-2018 00:34")
tibble(
full_datetime = lubridate::dmy_hm(
factor_datetime,
quiet = FALSE,
tz = "UTC",
locale = Sys.getlocale("LC_TIME"),
truncated = 0
)) %>%
mutate(Month = lubridate::month(full_datetime),
Day = lubridate::day(full_datetime),
Hour = lubridate::hour(full_datetime),
Minute = lubridate::minute(full_datetime))
# A tibble: 1 x 5
# full_datetime Month Day Hour Minute
# <dttm> <dbl> <int> <int> <int>
# 2018-03-14 00:34:00 3 14 0 34
我想从格式为 "DD-M-YYYY HH:MM" 的类型因子向量中提取日、月、时和分向量(例如“14-3-2018 00:34 ”)。
使用 Lubridate,可以按预期检索月和日,但是当我尝试检索小时和分钟时,它 returns 全为零。
我试过以下方法:
dataset$Month = month(dataset$msgDateTime)
dataset$Day = day(dataset$msgDateTime)
dataset$Hour = hour(dataset$msgDateTime)
dataset$Minute = minute(dataset$msgDateTime)
所以前两行产生了我想要的结果,但最后两行只产生了零。
我怎样才能让它工作?
这是一个使用 lubridate
的解决方案:
library(lubridate)
library(dplyr)
factor_datetime <- factor("14-3-2018 00:34")
tibble(
full_datetime = lubridate::dmy_hm(
factor_datetime,
quiet = FALSE,
tz = "UTC",
locale = Sys.getlocale("LC_TIME"),
truncated = 0
)) %>%
mutate(Month = lubridate::month(full_datetime),
Day = lubridate::day(full_datetime),
Hour = lubridate::hour(full_datetime),
Minute = lubridate::minute(full_datetime))
# A tibble: 1 x 5
# full_datetime Month Day Hour Minute
# <dttm> <dbl> <int> <int> <int>
# 2018-03-14 00:34:00 3 14 0 34