如何在R中将时间戳更改为以小时为单位的数字格式
我目前有一列HH:MM:SS格式的时间,需要将其转换为数字小时值如何在R中将时间戳更改为以小时为单位的数字格式,r,R,我目前有一列HH:MM:SS格式的时间,需要将其转换为数字小时值 [1]“0:00:00”“0:10:00”“0:20:00”“0:30:00”“0:40:00” [6]“0:50:00”“1:00:00”“1:10:00”“1:20:00”“1:30:00” [11]“1:40:00”“1:50:00”“2:00:00”“2:10:00”“2:20:00” 我本来打算使用lubridate程序,但是有没有更有效的方法呢?您可以: sapply(strsplit(vec,“:”),函数(x){
[1]“0:00:00”“0:10:00”“0:20:00”“0:30:00”“0:40:00”
[6]“0:50:00”“1:00:00”“1:10:00”“1:20:00”“1:30:00”
[11]“1:40:00”“1:50:00”“2:00:00”“2:10:00”“2:20:00”
我本来打算使用lubridate程序,但是有没有更有效的方法呢?您可以:
sapply(strsplit(vec,“:”),函数(x){
x[1]0.0000000.1666667 0.3333333 0.5000000 0.66667 0.8333333 1.0000000
#> [8] 1.1666667 1.3333333 1.5000000 1.6666667 1.8333333 2.0000000 2.1666667
#> [15] 2.3333333
数据
vec[1]“0:00:00”“0:10:00”“0:20:00”“0:30:00”“0:40:00”“0:50:00”“1:00:00”
#> [8] "1:10:00" "1:20:00" "1:30:00" "1:40:00" "1:50:00" "2:00:00" "2:10:00"
#> [15] "2:20:00"
由(v0.3.0)于2020年11月24日创建的带有
lubridate的选项
library(lubridate)
period_to_seconds(hms(vec))/3600
#[1] 0.0000000 0.1666667 0.3333333 0.5000000 0.6666667 0.8333333 1.0000000 1.1666667 1.3333333 1.5000000 1.6666667 1.8333333 2.0000000
#[14] 2.1666667 2.3333333
数据
vec请使用dput(mydata列)
的结果粘贴数据。这是否回答了您的问题?小时数值是什么意思?您的意思是0:00:00变为0.0,0:10:00变为0.1,1:10:00变为1.1?
vec <- c("0:00:00", "0:10:00", "0:20:00", "0:30:00", "0:40:00", "0:50:00",
"1:00:00", "1:10:00", "1:20:00", "1:30:00", "1:40:00", "1:50:00",
"2:00:00", "2:10:00", "2:20:00")