R中的日期时间转换

时间:2013-10-24 23:53:36

标签: r

我创建了一个类似这样的文件:

> filesInside
         Date         Time
1  01:09:2013 10:35:49.997 
2  01:09:2013 10:35:50.197

我怎么可能使用

创建一个函数
as.POSIXct()

我应该得到这样的东西:

> as.POSIXct("2013-09-01 10:35:50")
[1] "2013-09-01 10:35:50 NZST" 

如何将其作为一种功能?

到目前为止我的代码:

DateTime <- as.POSIXct(paste(filesInside$Date, filesInside$Time), format="%Y%m%d %H%M%S")

请欣赏一些帮助。干杯

2 个答案:

答案 0 :(得分:3)

你可以试试这个。 format中的日期时间组件和分隔符的顺序应该反映要转换的对象中的那些。另请参阅?strptime

with(filesInside,
     as.POSIXct(paste(Date, Time),
                format = "%d:%m:%Y %H:%M:%S",
                tz = "NZ"))
# [1] "2013-09-01 10:35:49 NZST" "2013-09-01 10:35:50 NZST"

答案 1 :(得分:2)

library(lubridate)
dmy_hms(apply(filesInside, 1, paste, collapse=" "), tz="NZ")
# [1] "2013-09-01 10:35:49 NZST" "2013-09-01 10:35:50 NZST"

lubridate这里很简单,特别是它的dmy_hmsymd等函数的集合。

要正确粘贴行,只需使用apply(<data.frame>, 1, paste, collapse=" ")

即可