我正在使用以下形式提供的“ data.frame
”:2017年8月12日。
class(data[,1]) = factor
如何将它们转换为日期?
data[,1] <- as.Date.factor(data[,1],format = "%m.%d.%y")
,返回NA
。
答案 0 :(得分:3)
我建议使用lubridate
软件包,以便使用非常易于使用的函数来处理日期。例如:
mdy("Aug 12,2017")
[1] "2017-08-12"
如果日期为YYYY-MM-DD格式,则可以使用ymd
函数。还有其他功能,例如dmy
,dmy_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"
希望有帮助