R以时间格式

时间:2015-11-24 21:11:17

标签: r

我有一个时间向量,其格式为因子。例如,Time [1]是8:01:01,class(Time [1])是factor。

现在我想从这个向量中提取小时和分钟。这种计算效率最高的方法是什么?我的矢量非常大。非常感谢你,

6 个答案:

答案 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))