我有一个数据集flex
,其中一列 - 预订 - 包括小时和分钟HH:MM。我需要删除点而不是HHMM。
我试过了:
gsub(":", "", flex$Bookings)
但是这会在控制台中返回所有新更改的变量,数据集中的变量不会更改。 我也尝试过:
flex$Bookings<-gsub(":", "", flex$Bookings)
但没有任何反应。我知道我想念一些简单但却无法弄清楚的东西。谢谢你的帮助
答案 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")
同样,这可能会非常缓慢,但如果您的需求特定于日期/时间,并且您不需要很快的速度,这种方法可能会对您有所帮助。祝你好运。