我有以下变量,想要将其转换为分钟,因此获得了一个数字变量。
目前,我正在执行以下操作:
require(lubridate)
time <- c("1 hour 10 mins", "1 hour 0 mins", "12 mins", "1 hour 0 mins",
"1 hour 4 mins", "1 hour 0 mins", "1 hour 0 mins", "1 hour 0 mins",
"1 hour 5 mins", "1 hour 0 mins", "34 mins", "1 hour 0 mins",
"50 mins", "1 hour 0 mins", "1 hour 0 mins", "1 hour 0 mins",
"1 hour 0 mins", "1 hour 0 mins", "1 hour 0 mins", "1 hour 0 mins",
"1 hour 0 mins", "1 hour 0 mins", "1 hour 34 mins", "1 hour 0 mins",
"43 mins", "1 hour 20 mins", "1 hour 0 mins", "1 hour 0 mins",
"1 hour 0 mins", "1 hour 30 mins", "1 hour 0 mins")
minute(strptime(time,'%M'))
在“ 50分钟”之类的情况下,它可以完美转换,而在“ 1小时0分钟”之类的情况下,它可以转换为1分钟。
另一种选择(逻辑相似但方法不同):
library(lubridate)
x[!grepl("hour", x)] <- paste("0 hour", x[!grepl('hour', x)], sep = " ")
hour(strptime(x, "%H hour %M mins"))*60 + minute(strptime(x, "%H hour %M mins"))
# [1] 70 60 12 60
资料:
c("1 hour 10 mins", "1 hour 0 mins", "0 hour 12 mins", "1 hour 0 mins"
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句