我想将这些日期格式为YYYYMMDD转换为Date类.
dates <- data.frame(Date = c("20130707", "20130706", "20130705", "20130704"))
Run Code Online (Sandbox Code Playgroud)
我试过了:
dates <- as.Date(dates, "%Y%m%d")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Error in as.Date.default(dates, "%Y%m%d") :
do not know how to convert 'dates' to class "Date"
Run Code Online (Sandbox Code Playgroud)
设置此格式的正确方法是什么?
GSe*_*See 17
您需要提供Date列,而不是整个列data.frame.
R> as.Date(dates[["Date"]], "%Y%m%d")
[1] "2013-07-07" "2013-07-06" "2013-07-05" "2013-07-04"
Run Code Online (Sandbox Code Playgroud)
小智 6
对字符的额外转换对我有用:
dates<-as.Date(as.character(dates),format="%Y%m%d")
Run Code Online (Sandbox Code Playgroud)
没有转换,将发生以下错误:
dates<-as.Date(dates,format="%Y%m%d")
Error in as.Date.numeric(dates, format = "%Y%m%d") :
'origin' must be supplied
Run Code Online (Sandbox Code Playgroud)
不同的错误,但这可能有帮助,也适用于POSIXct,粘贴日期和时间,格式为%Y%m%d%H
经典R:
> start_numeric <- as.Date('20170215', format = '%Y%m%d');
> start_numeric
[1] "2017-02-15"
> format(start_numeric, "%Y%m%d")
[1] "20170215"
Run Code Online (Sandbox Code Playgroud)
小智 5
使用 lubridate 包进行轻松转换:
date_test <- data.frame(Date = c("20130707", "20130706", "20130705", "20130704"))
date_test$Date <- ymd(date_test$Date)
date_test
Date
1 2013-07-07
2 2013-07-06
3 2013-07-05
4 2013-07-04
Run Code Online (Sandbox Code Playgroud)