不知道为什么你需要转换为hms
并返回到初始字符串格式。也许parse_date_time
功能是你所需要的:
library(lubridate)
myTime <- "14:11:49"
hms(myTime)
#"14H 11M 49S"
POSIXct_myTime <- parse_date_time(myTime,"hms")
format(POSIXct_myTime, format="%H:%M:%S")
#"14:11:49"
编辑: 我们可以用paste
:
t <- hms("14:11:49")
t
#[1] "14H 11M 49S"
t <- t + minutes(3)
t
#[1] "14H 14M 49S"
paste(hour(t),minute(t),second(t),sep=":")
#[1] "14:14:49"
基准输出:
op <- microbenchmark(
Use_paste=paste(hour(t),minute(t),second(t),sep=":"),
Use_sprintf=sprintf("%s:%s:%s", hour(t), minute(t), second(t)),
times=1000000L)
op
# Unit: microseconds
# expr min lq median uq max neval
# Use_paste 28.072 31.695 32.601 33.506 44253.42 1e+06
# Use_sprintf 29.582 33.807 34.412 35.619 44367.52 1e+0
这似乎是一个更好的主意。 – MrFlick 2014-09-04 14:53:46
我认为(偏执)字符串格式时,写入文本文件时为每个条目保存一些字节。然而你的解决方案并没有达到我想要达到的效果。这一行是'egg-egg'问题:'POSIXct_myTime < - parse_date_time(myTime,“hms”)'。我没有字符串格式的myTime。我读了数以百万计的'%H:%M:%S'格式的条目,对它们进行过滤并希望写回与输入完全相同的格式。 – biocyberman 2014-09-05 08:47:58
“...字符串格式在写入文本文件时为每个条目保存一些字节...” - 不确定这是否为真...另外,“...我没有字符串格式的myTime .. 。“ - 在你的文章中你传递一个字符串给hms - 'hms(”14:11:49“)' – zx8754 2014-09-05 09:29:15