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

R and Posix: Importing times into dataframe results in lost informations

这是我在 Whosebug 上的第一个问题,所以如果我有任何错误,我深表歉意..

我正在尝试在 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"

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

用点替换逗号。

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"

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