如何分开日期和时间

时间:2015-07-27 14:13:03

标签: r

我正在输入" a< - [12 / Dec / 2014:05:45:10]" a不是时间戳,所以不能使用任何时间和日期函数

现在我希望将上述变量分为两部分: - 日期 - > 12 / DEC / 2014 时间 - > 5时45分10秒

任何帮助将不胜感激。

enter image description here

2 个答案:

答案 0 :(得分:3)

您可以使用gsub在日期和时间之间创建空格,并使用该空格创建两列read.table

 read.table(text=gsub('^\\[([^:]+):(.*)+\\]', '\\1 \\2', a),
                    sep="", col.names=c('Date', 'Time'))
 #          Date     Time
 # 1 12/Dec/2014 05:45:10

或者您可以使用lubridate将其转换为'POSIXct'类

 library(lubridate)
 a1 <- dmy_hms(a)
 a1
 #[1] "2014-12-12 05:45:10 UTC"

如果我们需要两个具有指定格式的列

 d1 <- data.frame(Date= format(a1, '%d/%m/%Y'), Time=format(a1, '%H:%M:%S'))

数据

 a <- "[12/Dec/2014:05:45:10]"

答案 1 :(得分:1)

<强>代码

a <- "[12/Dec/2014:05:45:10]" 
Sys.setlocale("LC_TIME", "C") # depends on your local setting
as.POSIXlt(a, format = "[%d/%b/%Y:%H:%M:%S]")

<强>解释

根据您的本地设置,您需要更改它,以便可以读取缩写的月份名称。然后,您可以将as.POSIXlt与格式字符串一起使用,以在日期中转换字符串。