R - 数字(int)到日期转换

时间:2018-03-15 15:17:07

标签: r analysis data-cleaning data-cleansing

我有date.frame

values(20180213190133, 20180213190136, 20180213190173 , 20180213190193 , 20180213190213, 20180213190233, 20180213190333, 20180213190533, 20180213190733, 20180213190833, 20180213190833, 20180213190833, 201802131901833, 20180213191133, 20180213192133, 20180213194133, 20180213199133, 20180213199133, 20180213199133, 20180213199133, 20180213190136.... 1200 entries)

我想将此int类型的列转换为Date

我尝试过使用: as.Date()as.POSIXct()。两者都不起作用。我得到了N / A值。

请告诉我如何将此字段从int转换为Date。

由于

1 个答案:

答案 0 :(得分:0)

试试这个:

输入数据

values<-c(20180213190133, 20180213190136, 20180213190173)

values_date<-as.Date(substr(as.character(values),start = 1,stop=8), format = "%Y%m%d")
> values_date
[1] "2018-02-13" "2018-02-13" "2018-02-13"
> class(values_date)
[1] "Date"

如果你想保持小时/分钟/秒,你可以试试这个:

values_date<-as.POSIXlt(as.character(values), format = "%Y%m%d%H%M%S")

在此之后,课程将为"POSIXlt" "POSIXt",而不是Date,但您的输入数据中会有一些奇怪的信息

在第三个数字中,最后两个数字是“73”,这个数字在几秒钟内不正确,你输出中会有NA

values_date
[1] "2018-02-13 19:01:33 CET" "2018-02-13 19:01:36 CET" NA