如何使用strptime或其他函数来解析R中的毫秒时间戳?
strptime
time <- "2010-01-15 13:55:23.975" print(time) # [1] "2010-01-15 13:55:23.975" strptime(time, format="%Y-%m-%d %H:%M:%S.%f") # [1] NA strptime(time, format="%Y-%m-%d %H:%M:%S") # [1] "2010-01-15 13:55:23"`
字符串
piok6c0g1#
感谢?strptime帮助文件(将示例更改为您的值):
?strptime
> z <- strptime("2010-01-15 13:55:23.975", "%Y-%m-%d %H:%M:%OS") > z # prints without fractional seconds [1] "2010-01-15 13:55:23 UTC" > op <- options(digits.secs=3) > z [1] "2010-01-15 13:55:23.975 UTC" > options(op) #reset options
ar5n3qh52#
您也可以使用strptime(time, "%OSn"),其中0 <= n <= 6,而不必设置digits.secs。文档中指出“这些支持的都是依赖于操作系统的。”所以YMMV。
strptime(time, "%OSn")
digits.secs
iszxjhcz3#
另一个不需要设置options(digits.secs=3)的方法是使用format():
options(digits.secs=3)
format()
format(Sys.time(), "%Y-%m-%d %H:%M:%OS3") # alternative: format(Sys.time(), digits = 3L) time <- "2010-01-15 13:55:23.975" # using strptime to convert the string format(strptime(time, "%Y-%m-%d %H:%M:%OS"), "%Y-%m-%d %H:%M:%OS3") format(strptime(time, "%Y-%m-%d %H:%M:%OS"), digits = 3L) # using as.POSIXct to convert the string (under the hood also using strptime()) format(as.POSIXct(time), "%Y-%m-%d %H:%M:%OS3") format(as.POSIXct(time), digits = 3L)
字符串但是,关于as.POSIXct,请参阅此。
as.POSIXct
3条答案
按热度按时间piok6c0g1#
感谢
?strptime
帮助文件(将示例更改为您的值):字符串
ar5n3qh52#
您也可以使用
strptime(time, "%OSn")
,其中0 <= n <= 6,而不必设置digits.secs
。文档中指出“这些支持的都是依赖于操作系统的。”所以YMMV。
iszxjhcz3#
另一个不需要设置
options(digits.secs=3)
的方法是使用format()
:字符串
但是,关于
as.POSIXct
,请参阅此。