在 R 中处理时间的最佳做法是啥?

Posted

技术标签:

【中文标题】在 R 中处理时间的最佳做法是啥?【英文标题】:what is the best practice of handling time in R?在 R 中处理时间的最佳做法是什么? 【发布时间】:2010-10-09 14:52:18 【问题描述】:

我正在使用调查数据集。它有两个字符串vectorsstartfinish,分别表示面试开始和结束的时间。

它们是character 字符串,看起来像:"9:24 am""12:35 pm",等等。我正在尝试根据这两个计算面试的持续时间。这样做的最佳方法是什么?

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

R 处理时间的最佳做法是什么?

【问题讨论】:

【参考方案1】:

您需要使用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(),否则你可以传递时间对象。

希望这会有所帮助!

【讨论】:

【参考方案2】:

一种选择是使用正则表达式。如果您不熟悉它们,它们用于使用模式解析字符串。我会研究正则表达式然后here are the functions in r

希望对你有帮助

【讨论】:

【参考方案3】:

最佳实践是使用 lubridate 包

https://www.rdocumentation.org/packages/lubridate/versions/1.5.6/topics/hm

hm(c("09:10", "09:02", "1:10"))
## [1] "9H 10M 0S" "9H 2M 0S"  "1H 10M 0S

然后使用 difftime 来区分上面创建的日期时间格式 https://stat.ethz.ch/R-manual/R-devel/library/base/html/difftime.html

difftime(time1, time2, tz,
         units = c("auto", "secs", "mins", "hours",
                   "days", "weeks"))

【讨论】:

以上是关于在 R 中处理时间的最佳做法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

处理中途断开连接的控制器的最佳做法是啥?

在 R 中处理时间序列的最佳实践是啥?

在固定的 UILabel 中处理长文本的最佳实践是啥

(在表格中搜索)最佳做法是啥? [关闭]

添加视频背景视图的最佳做法是啥?

在 WordPress 中管理子目录的最佳做法是啥?