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