我有一个问题。如何将日期和时间格式20110711201023
转换为小时数。这是我用于图像分析的软件输出,我无法改变它。定义开始日期和时间非常重要。
格式:2011年,07月,11天,20小时,10分钟,23秒。
示例:
Starting Data and Time - 20110709201023,
First Data and Time - 20110711214020
Result = 49,5h.
我有这种格式的10000个数据,所以我不想手动执行此操作。 我会非常感激地提出任何建议。
答案 0 :(得分:3)
最好是首先使用strptime
使其成为真正的R时间对象:
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") })