我有一个问题,我认为这是由于我对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"
有什么想法我在做什么错吗?
答案 0 :(得分:2)
@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"