如何在r数据帧中将日期时间格式“%Y-%m-%d%H:%M:%S”转换为“%Y-%m-%d%H:%M:%S.sss”?第二部分

时间:2018-08-22 11:22:02

标签: r timestamp strptime

我正在努力将R "%Y-%m-%d %H:%M:%S"中的日期时间格式"%Y-%m-%d %H:%M:%S.sss"转换为data.frame吗?请注意,我想要秒和小数秒。

1 个答案:

答案 0 :(得分:1)

我不确定您要问什么。您可以使用以下格式设置小数秒: "%OS3"

来自?strptime

  

特定于R的是“%OSn”,它的输出为秒        截断为“ 0 <= n <= 6”小数位(如果不是'%OS'        后面跟一个数字,它使用        ‘getOption(“ digits.secs”)),或者如果未设置,则为'n = 0')。        此外,对于“ strptime”,“%OS”将输入秒,包括        小数秒。请注意,“%S”不读取小数部分        在输出上。

示例:

ss <- "2018-08-22 21:30:00.5"
format(as.POSIXct(ss, format = "%Y-%m-%d %H:%M:%OS"), format = "%Y-%m-%d %H:%M:%OS3")
#[1] "2018-08-22 21:30:00.500"

或获取示例data.frame

df <- data.frame(
    date = c("2018-08-22 21:30:00", "2018-08-22 22:00:00", "2018-08-22 22:30:00"))
transform(df, new.date = format(
    as.POSIXct(date, format = "%Y-%m-%d %H:%M:%OS"), 
    format = "%Y-%m-%d %H:%M:%OS3"))
#    date                new.date
#1 2018-08-22 21:30:00 2018-08-22 21:30:00.000
#2 2018-08-22 22:00:00 2018-08-22 22:00:00.000
#3 2018-08-22 22:30:00 2018-08-22 22:30:00.000