【问题标题】:Extracting time from Sys.time从 Sys.time 中提取时间
【发布时间】:2018-07-03 03:13:54
【问题描述】:

我有一个问题,我认为是因为我对Sys.time() 输出的性质缺乏了解。我想用文件名中的时间戳保存 R 的输出。我尝试使用%>%gsub(),但没有得到预期的结果。

当我运行 Sys.time 时,这是输出:

Sys.time()
[1] "2018-07-02 21:57:27 CDT"

当我运行我认为应该可以工作的代码时,会发生这种情况:

> Sys.time() %>% gsub("^[^\\s]+\\s([^\\s]+)\\s[^\\s]+$", "\\1", .)
[1] "2018-07-02 21:57:27"

有趣的是,这段代码产生了我想要的值:

> Sys.time() %>% gsub("^[^\\s]+\\s", "", .)
[1] "21:57:27"

任何想法我做错了什么?

【问题讨论】:

  • 你可以用formatformat(Sys.time(), "%H:%M:%S")来做到这一点

标签: r time


【解决方案1】:

@akrun,谢谢,这行得通!

我也意识到了这个问题。即使Sys.time() 打印"2018-07-02 21:57:27 CDT" 这只是格式化。 "2018-07-02 22:16:45" 是实际的字符串。

> as.character(Sys.time())
[1] "2018-07-02 22:16:45"

这也解释了为什么我的第二个gsub() 代码有效,因为Sys.time() 输出中只有一个空格字符。

> Sys.time() %>% gsub("^[^\\s]+\\s", "", .)
[1] "21:57:27"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 2015-01-10
    • 2016-08-10
    • 2019-05-08
    • 2021-02-18
    • 1970-01-01
    相关资源
    最近更新 更多