3

我有一个问题。如何将该20110711201023日期和时间格式转换为小时数。这是我用于图像分析的软件的输出,我无法更改它。定义开始日期和时间非常重要。格式:2011 年 07 月 11 日 20 小时 10 分钟 23 秒。例子:

Starting Data and Time - 20110709201023,
First Data and Time - 20110711214020
Result = 49,5h.

我有 10000 个这种格式的数据,所以我不想手动执行此操作。我将非常感激任何建议。

4

1 回答 1

3

最好的方法是首先使用以下方法使其成为真正的 R 时间对象strptime

time_obj = strptime("20110711201023", format = "%Y%m%d%H%M%S")

如果你对开始日期和结束日期都这样做,你可以简单地说:

end_time - start_time 

以秒为单位获得差异,可以轻松转换为小时数。要转换这些时间字符串的整个列表,只需执行以下操作:

time_vector = strptime(dat$time_string, format = "%Y%m%d%H%M%S")

dat包含数据的 data.frame 和time_string包含时间字符串的列在哪里。请注意, strptime 也适用于向量(它是向量化的)。您还可以使新时间向量成为 dat 的一部分:

dat$time = strptime(dat$time_string, format = "%Y%m%d%H%M%S")

或者更优雅(至少如果你$和我一样讨厌:)):

dat = within(dat, { time = strptime(dat$time_string, format = "%Y%m%d%H%M%S") }) 
于 2012-11-28T14:25:05.187 回答