R-在data.frame中转换日期

时间:2018-09-07 12:43:50

标签: r

我正在使用以下形式提供的“ data.frame”:2017年8月12日。

class(data[,1]) = factor

如何将它们转换为日期?

data[,1] <- as.Date.factor(data[,1],format = "%m.%d.%y"),返回NA

3 个答案:

答案 0 :(得分:3)

我建议使用lubridate软件包,以便使用非常易于使用的函数来处理日期。例如:

mdy("Aug 12,2017")
[1] "2017-08-12"

如果日期为YYYY-MM-DD格式,则可以使用ymd函数。还有其他功能,例如dmydmy_hms(用于日期时间)等。

如果您的列名为my.date,则可以执行以下操作:

data$my.date <- mdy(data$my.date)

或者,您可以使用%<>%中的magrittr运算符来使代码更短:

data$my.date %<>% mdy

答案 1 :(得分:1)

使用as.POSIXct(Base-R解决方案):

as.POSIXct("Aug 12,2017", format="%b%d,%Y")

输出:

[1] "2017-08-12 CEST"

答案 2 :(得分:1)

使用strptime可以工作:

strptime("Aug 12,2017", "%b%d,%Y")

输出:

[1] "2017-08-12 UTC"

strptime的第二个参数是日期的格式。例如,如果您的日期是这样的"1/5/2005",则格式为:

format="%m/%d/%Y"

希望有帮助