不知道爲什麼你需要轉換爲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