读取不同长度的时间数据并使它们在R中相同

时间:2017-05-17 03:56:09

标签: r datetime

我正在读取一段时间内从文本文件到R的数据。数据在N.Time列中。 N.Time中的部分数据包含小时,分钟和秒(例如1:45:02)。不到一小时的实例只有几分钟和几秒钟(例如34:25)

数据以字符形式读入。我想转换为时间以便稍后执行计算。然而格式化让我感到困惑。如果我使用%H:%M:%S格式,则所有不会有小时数的实例都会转换为NA。如果我使用%M:%S格式,那么有几个小时的实例会搞砸(例如1:45:02变为00:01:05)。

有关如何使这两种格式协同工作的任何建议?理想情况下,只需将小时插槽中的00:添加到所有没有时间的实例中

1 个答案:

答案 0 :(得分:2)

如果除了缺失的小时数之外,所有时间都有相同的固定格式,那么使用00:填写小时的正则表达式并不太复杂:

> times = c("1:45:02", "34:25")
> gsub("^(\\d\\d:\\d\\d)$", "00:\\1", times, perl = TRUE)
[1] "1:45:02"  "00:34:25"