R和Posix:将时间导入数据帧会导致信息丢失

时间:2016-03-19 12:12:30

标签: r posix

这是我关于Stackoverflow的第一个问题,所以如果我犯了任何错误,我会道歉..

我正在尝试在R中导入一个包含3行的数据帧,其中第一行的时间表示为:“minutes:seconds,milliseconds”。例如:“05:02,159”。

每当我尝试导入时间,保留毫秒时,整个时间似乎都会重置。

下面是一个示例代码,时间格式与数据帧中的格式相同:

> time1 <- "00:00,05"
> time1
[1] "00:00,05"

正确保留信息以上。然后我尝试将char对象转换为POSIX对象。

> time2 <- as.POSIXct(strptime(time1,"%M:%OS"))

当我尝试可视化“time2”时,只显示日期

> time2
[1] "2016-03-19 CET"

当我尝试格式化输出时,似乎时间信息已被重置

> strftime(time2,'%Y-%m-%d %H:%M:%OS3')
[1] "2016-03-19 00:00:00.000"
> strftime(time2,'%H:%M:%OS3')
[1] "00:00:00.000"

我也尝试调整选项(digits.secs = 3)设置,但没有任何改变。

1 个答案:

答案 0 :(得分:2)

用逗号替换逗号。

time1 <- "00:00,05"
time2 <- as.POSIXct(strptime(gsub(",", ".", time1, fixed = TRUE),"%M:%OS"))
strftime(time2,'%Y-%m-%d %H:%M:%OS4')
#[1] "2016-03-19 00:00:00.0499"

请注意,浮点精度与此相关。