我正在使用调查数据集。它有两个字符串vectors
,start
和finish
,分别表示采访开始和结束的时间。
它们是character
字符串,如:"9:24 am"
,"12:35 pm"
,依此类推。我试图根据这两个来计算面试的持续时间。这样做的最佳方式是什么?
我知道,对于日期,有很多classe
或function
有as.date()
,as.Date()
,chron()
或{{1} }}。所以我一直在找as.POSIXct()
之类的东西,却找不到它。我是否应该附加一个补充日期并将整个事件转换为as.time()
日期时间POSIX()
,然后使用class
?
在difftime()
处理时间的最佳做法是什么?
答案 0 :(得分:15)
您需要使用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 :(得分:1)
一个选项是使用正则表达式。如果你不熟悉它们,它们用于使用模式解析字符串。我会研究正则表达式然后here are the functions in r
希望有所帮助
答案 2 :(得分:0)
最佳做法是使用lubridate包
https://www.rdocumentation.org/packages/lubridate/versions/1.5.6/topics/hm
<li class="hidden">
<a href="#">Albania</a>
</li>
然后使用difftime获取上面创建的日期时间格式的差异 https://stat.ethz.ch/R-manual/R-devel/library/base/html/difftime.html
hm(c("09:10", "09:02", "1:10"))
## [1] "9H 10M 0S" "9H 2M 0S" "1H 10M 0S