我有一个时间向量,其格式为因子。例如,Time [1]是8:01:01,class(Time [1])是factor。
现在我想从这个向量中提取小时和分钟。这种计算效率最高的方法是什么?我的矢量非常大。非常感谢你,
答案 0 :(得分:12)
试试这个:
format(strptime(Time,"%H:%M:%S"),'%H:%M')
[1] "08:01"
答案 1 :(得分:9)
lubridate
包的一种方法是:
Time <- factor("08:01:01")
lubridate::hms(as.character(Time))
提取小时和分钟:
library(lubridate)
Time <- factor("08:01:01")
# parese date
a <- hms(as.character(Time))
# get hours
hour(a)
# get minutes
minute(a)
答案 2 :(得分:4)
您还可以尝试将您的因子转换为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"
答案 3 :(得分:2)
这个怎么样?
Time <- factor("08:01:01")
Time2 <- strptime(Time, "%H:%M:%S")
Time3 <- format(Time2, "%H:%M")
时间3
[1]&#34; 08:01&#34;
答案 4 :(得分:0)
更简单的解决方案:
format(Sys.time(), "%H:%M")
答案 5 :(得分:0)
data.table
包处理日期时间。您可以使用其便利功能hour()
和minute()
提取特定时间,然后paste0()
一起使用。
require(data.table)
time = Sys.time()
paste0(hour(time), ':', minute(time))