如何在r Dataframe 中将日期时间格式“%Y-%m-%d %H:%M:%S”转换为“%Y-%m-%d %H:%M:%S.sss”?带小数秒

ubof19bj  于 2022-12-25  发布在  其他
关注(0)|答案(1)|浏览(243)

我很难在R data.frame中将日期时间格式"%Y-%m-%d %H:%M:%S"转换为"%Y-%m-%d %H:%M:%S.sss"?请注意,我希望秒带有小数秒。

toe95027

toe950271#

我不太清楚你在问什么。你可以用"%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

相关问题