将字符转换为R中的时间(“2019-09-24D00:00:03.384309000”)
我正在尝试将一些文本数据转换为时间。我知道将将字符转换为R中的时间(“2019-09-24D00:00:03.384309000”),r,R,我正在尝试将一些文本数据转换为时间。我知道将2019-09-24 00:00:03转换为时间格式的方法,但我想将更高频率的数据转换为时间 一些观察结果如下: [1] "2019-09-24D00:00:03.384309000" "2019-09-24D00:00:03.404018000" [3] "2019-09-24D00:00:03.408065000" "2019-09-24D00:00:03.552361000" [5] "2019-09-24D00:00:03.5726900
2019-09-24 00:00:03
转换为时间格式的方法,但我想将更高频率的数据转换为时间
一些观察结果如下:
[1] "2019-09-24D00:00:03.384309000" "2019-09-24D00:00:03.404018000"
[3] "2019-09-24D00:00:03.408065000" "2019-09-24D00:00:03.552361000"
[5] "2019-09-24D00:00:03.572690000" "2019-09-24D00:00:03.572690000"
[7] "2019-09-24D00:00:03.572690000" "2019-09-24D00:00:03.572690000"
我发现了一些可以转换这些数据的Python代码:
data[‘timestamp’] = data.timestamp.map(lambda t: datetime.strptime(t[:-3], “%Y-%m-%dD%H:%M:%S.%f”))
数据:
data我们可以使用lubridate
正确解析它
library(lubridate)
out <- ymd_hms(data)
format(head(out), '%OS6')
#[1] "03.384309" "03.404017" "03.408064" "03.552361" "03.572690" "03.572690"
签出asPOSIXct()
。要找出正确的格式
参数,请查看?strtime
res <- as.POSIXct(data, format="%FD%R:%OS")
head(res, 3)
# [1] "2019-09-24 00:00:03.384309 CEST" "2019-09-24 00:00:03.404017 CEST"
# [3] "2019-09-24 00:00:03.408065 CEST"
class(res)
# [1] "POSIXct" "POSIXt"
res有效,但不考虑毫秒
。我应该将它们单独存储在一列中吗?@user8959427它正在考虑,但它只是在打印它differently@user8959427您可以检查格式(ymd_hms(数据),'%OS6')[1]“03.384309”“03.404017”…
谢谢!这是我不知道的。在全局选项中是否有我可以“打开”毫秒的地方?
library(anytime)
anytime(data)
res <- as.POSIXct(data, format="%FD%R:%OS")
head(res, 3)
# [1] "2019-09-24 00:00:03.384309 CEST" "2019-09-24 00:00:03.404017 CEST"
# [3] "2019-09-24 00:00:03.408065 CEST"
class(res)
# [1] "POSIXct" "POSIXt"