【问题标题】:Convert from time character to time numerical variable in r在r中从时间字符转换为时间数值变量
【发布时间】:2020-01-21 19:02:41
【问题描述】:

Tibble

你好!我正在尝试将 Start.time 变量从“4:00 PM”的字符格式更改并取出 PM/AM 并将其保留为 4:00 作为数字变量(如果可能)。谢谢!

【问题讨论】:

  • See here 提出一个人们可以帮助解决的 R 问题。这包括一个数据样本(不是图片)、所有必要的代码,以及对什么不起作用的清晰解释。

标签: r datetime time character numeric


【解决方案1】:

一种选择是使用str_remove 匹配零个或多个空格(\\s*),后跟字符串末尾的字母“A”、“P”、“M”($

library(stringr)
library(dplyr)
df1 %>%
     mutate(Start.time = str_remove(Start.time, "\\s*[APM]+$"))

base R 中,这可以通过sub 完成

df1$Start.time <- sub("\\s*[APM]+$", "", df1$Start.time)

substr

trimws(substr(df1$Start.time, 1, 5))

【讨论】:

    【解决方案2】:

    gsub("\\s*[APM]", "", start.time) 可用于将 HH:MM 之后的字符串部分替换为空字符串,只留下 HH:MM 位。

    trimws(x) 替换字符串 x 中的任何前导空格。

    > start.time
    [1] "4:00 PM"  "12:00 AM" " 4:00 AM"
    
    > trimws(gsub("\\s*[APM]", "", start.time))
    [1] "4:00"  "12:00" "4:00"
    

    【讨论】:

    • 能否请您为您的答案添加更多上下文。仅代码的答案很难理解。如果您可以在帖子中添加更多信息,它将帮助提问者和未来的读者。另请参阅Explaining entirely code-based answers
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多