我有一个时间向量,它是因子的格式.例如,Time [1]是8:01:01,class(Time [1])是factor.
现在我想从这个向量中提取小时和分钟.这种计算效率最高的方法是什么?我的矢量非常大.非常感谢,
She*_*hen 17
试试这个:
format(strptime(Time,"%H:%M:%S"),'%H:%M')
[1] "08:01"
Run Code Online (Sandbox Code Playgroud)
joh*_*nes 10
lubridate包的一种方法是:
Time <- factor("08:01:01")
lubridate::hms(as.character(Time))
Run Code Online (Sandbox Code Playgroud)
提取小时和分钟:
library(lubridate)
Time <- factor("08:01:01")
# parese date
a <- hms(as.character(Time))
# get hours
hour(a)
# get minutes
minute(a)
Run Code Online (Sandbox Code Playgroud)
您还可以尝试将因子转换为 POSIXt 对象,然后使用 format 函数的组合。不过,我不确定这种方法的效率如何。
Time <- factor("08:01:01")
hour = format(as.POSIXct(Time,format="%H:%M:%S"),"%H")
minute = format(as.POSIXct(Time,format="%H:%M:%S"),"%M")
paste(hour,minute,sep=":")
[1] "08:01"
Run Code Online (Sandbox Code Playgroud)
那这个呢
Time <- factor("08:01:01")
Time2 <- strptime(Time, "%H:%M:%S")
Time3 <- format(Time2, "%H:%M")
Run Code Online (Sandbox Code Playgroud)
时间3
[1] "08:01"