将时间变量从HH:MM格式更改为R中的HHMM

时间:2015-05-08 14:00:48

标签: r

我有一个数据集flex,其中一列 - 预订 - 包括小时和分钟HH:MM。我需要删除点而不是HHMM。 我试过了:

gsub(":", "", flex$Bookings)      

但是这会在控制台中返回所有新更改的变量,数据集中的变量不会更改。 我也尝试过:

flex$Bookings<-gsub(":", "", flex$Bookings) 

但没有任何反应。我知道我想念一些简单但却无法弄清楚的东西。谢谢你的帮助

2 个答案:

答案 0 :(得分:3)

我对你的问题感到困惑。请看一下这个输出。

flex <- data.frame(Bookings = paste0(10:20, ":", 20:10))
flex$Bookings <- gsub(":", "", flex$Bookings)

flex
#    Bookings
# 1      1020
# 2      1119
# 3      1218
# 4      1317
# 5      1416
# 6      1515
# 7      1614
# 8      1713
# 9      1812
# 10     1911
# 11     2010

对于您提出的问题,您的语法是正确的。

如果您的表非常大,另一个选项是使用data.table包。

library(data.table)
flex_dt <- data.table(Bookings = paste0(10:20, ":", 20:10))
flex_dt[ , Bookings := gsub(":", "", Bookings)]

答案 1 :(得分:1)

这对您来说可能太慢,但您可以考虑使用POSIX类和format.Date。

time1 <- c("14:08")

time1.date <- format.Date(as.POSIXct(time1, format="%H:%M"), format="%H%M")

同样,这可能会非常缓慢,但如果您的需求特定于日期/时间,并且您不需要很快的速度,这种方法可能会对您有所帮助。祝你好运。