【问题标题】:How to extract time from lubridate?如何从润滑脂中提取时间?
【发布时间】:2019-03-28 15:49:33
【问题描述】:

我想从格式为“DD-M-YYYY HH:MM”(例如“14-3-2018 00: 34")。

使用 Lubridate,按预期检索月份和日期,但是当我尝试检索小时和分钟时,它返回全零。

我尝试了以下方法:

dataset$Month = month(dataset$msgDateTime)
dataset$Day = day(dataset$msgDateTime)
dataset$Hour = hour(dataset$msgDateTime)
dataset$Minute = minute(dataset$msgDateTime)

所以前两行产生了我想要的结果,但最后两行只产生了零。

我怎样才能让它工作?

【问题讨论】:

  • 先转换成datetimedataset$msgDateTime <- dmy_hm(dataset$msgDateTime)再提取元素,
  • minute(dmy_hm( "14-3-2018 00:34"))# [1] 34

标签: r datetime lubridate


【解决方案1】:

这是使用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

【讨论】:

    猜你喜欢
    • 2018-11-17
    • 1970-01-01
    • 2021-09-27
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多