使用`R`和`readr`处理没有时间的时间

时间:2018-09-06 16:35:03

标签: r datetime readr

我有几个计划使用readr导入的电子表格。原始电子表格中的时间记录为分钟和秒,不含小时-“ M:S”的值为“ 0:10”。对于开始的时间戳,没有使用另一个前导零,我认为这是问题的根源。

尝试使用read_csv进行采样,此列已正确解析为时间,但格式不正确(“ H:M”)。在通话中使用col_types = cols(timecode = col_time(format = "%M:%S"))似乎无法解决。

使用向量作为时间和parse_time重新表示:

library(tidyverse)

times <- c("0:00", "0:10", "0:53", "6:22", "9:45", "10:21")
parse_time(times) #Shows H:M:S
parse_time(times, format = "%M:%S") #Errors until 10:21

我可以采取哪些步骤以仅几分钟和几秒钟的时间正确导入时间?

1 个答案:

答案 0 :(得分:0)

问题似乎出在分钟上缺少前导零。一种解决方案是添加缺少的零,然后解析正常进行:

library(tidyverse)

times2 <- c("00:00", "00:10", "00:53", "06:22", "09:45", "10:21")
parse_time(times2, format = "%M:%S")

另一种解决方案是在基础strptime中使用R函数,该函数可以处理当前格式。但这会将结果存储为POSIXlt对象,并带有额外的信息(这意味着打印更加混乱)。

?parse_time中,它表示格式规范必须与完整的字符串匹配。