R以因子格式从时间中提取小时数

New*_*ave 12 r

我有一个时间向量,它是因子的格式.例如,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)


s_s*_*ary 9

您还可以尝试将因子转换为 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)


Bor*_*ega 5

那这个呢

 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"