在R中处理时间的最佳实践是什么?

15

我正在使用一个调查数据集,其中有两个字符串向量startfinish,分别表示采访开始和结束的时间。

它们是character字符串,看起来像这样:"9:24 am""12:35 pm"等。我正在努力基于这两个值计算采访持续时间。最好的方法是什么?

我知道对于日期,有很多类或函数,如as.date()as.Date()chron()as.POSIXct()。所以我在寻找类似as.time()的东西,但是没有找到。我是否应该添加一个虚构的日期,并将整个内容转换为POSIX()日期时间类,然后使用difftime()

R中处理时间的最佳实践是什么?

3个回答

16

您需要使用strptime()将字符串转换为日期。例如:

strptime("9:24 am",format="%I:%M %p")

然后你可以通过将一个数减去另一个数来计算它们的差异:

strptime("9:24 am",format="%I:%M %p")-strptime("12:14 am",format="%I:%M %p")
Time difference of 9.166667 hours

如果只需要数字,请将其存储,然后执行as.numeric(),否则可以传递时间对象。

希望这会有所帮助!


1

一种选择是使用正则表达式。如果您不熟悉它们,它们用于使用模式解析字符串。我建议先研究正则表达式,然后这里是R中的函数

希望能有所帮助。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接