gpt4 book ai didi

r - as.POSIXct/as.POSIXlt 不喜欢 .61 毫秒

转载 作者:行者123 更新时间:2023-12-04 11:31:12 24 4
gpt4 key购买 nike

这是一个奇怪的神器。我正在将数以万计的字符向量转换为日期时间类,如下所示:

alles$DateTime=as.POSIXct(alles$roughdate, tz="EST",format="%Y%m%d.%H%M%S.%OS")

非常简单。字符串(alles$roughdate)格式为YYYYMMDD.HHMMSS.ss.ss为毫秒。正如预期的那样,上面的代码有效。但是,如果毫秒等于 .61,它会返回 NA 而不是日期时间值。

这还不算太糟糕,但是在处理数万个单元格时,总是有几百个返回为 NA。毫秒始终为 0.61,与日期的其余部分无关。我确实需要那些日期。

我试过隔离这些文件,然后再次将两个数据框合并在一起,但这似乎不起作用。我所有的约会对象都突然不适用了。

有什么想法吗?

例子

vec <- c("20150101.010101.60", "20150101.010101.61", "20150101.010101.62") 
as.POSIXlt(vec, tz="EST", format="%Y%m%d.%H%M%S.%OS")
#[1] "2015-01-01 01:01:60 EST" NA "2015-01-01 01:01:01 EST"

最佳答案

如果将时间部分的格式更改为 %H%M%OS 而不是 %H%M%S.%OS,它似乎解析正确。您可能需要调整您的选项,所以请看:

as.POSIXlt(vec, tz = "EST", format = "%Y%m%d.%H%M%OS")
#[1] "2015-01-01 01:01:01 EST" "2015-01-01 01:01:01 EST"
#[3] "2015-01-01 01:01:01 EST"

options(digits.secs = 2)
as.POSIXlt(vec, tz = "EST", format = "%Y%m%d.%H%M%OS")
# [1] "2015-01-01 01:01:01.60 EST" "2015-01-01 01:01:01.61 EST"
# [3] "2015-01-01 01:01:01.62 EST"

关于r - as.POSIXct/as.POSIXlt 不喜欢 .61 毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35234030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com