一个客户给我发了一个Excel文件格式为如2012/3/15日期3月15日我保存这个为.csv文件,然后使用
camm$Date <- as.Date(camm$Date, "%m/%d/%y")
但是这给了我值开始在2020年!
我试图重新格式化日期在原来的csv文件,使他们如2013年3月14日,但未能如愿。
任何帮助表示赞赏
一个客户给我发了一个Excel文件格式为如2012/3/15日期3月15日我保存这个为.csv文件,然后使用
camm$Date <- as.Date(camm$Date, "%m/%d/%y")
但是这给了我值开始在2020年!
我试图重新格式化日期在原来的csv文件,使他们如2013年3月14日,但未能如愿。
任何帮助表示赞赏
利用资本Y
在as.Date
调用来代替。 这应该做的伎俩:
> as.Date("3/15/2012", "%m/%d/%Y")
[1] "2012-03-15"
从帮助文件的例子可以实现当一年充满指定你应该使用%Y
否则%y
例如:
> dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")
> as.Date(dates, "%m/%d/%y")
[1] "1992-02-27" "1992-02-27" "1992-01-14" "1992-02-28" "1992-02-01"
你可以看到,在你的榜样年度格式为2012,那么你应该使用%Y
,而在其他的例子(取自as.Date
帮助文件)格式的年份为92,然后用%y
是要走的正确途径。 见as.Date
进一步的细节。
你也可以试用一下该lubridate
包,如果你不想处理象形文字:)
> library(lubridate)
> parse_date_time('3/15/2012', 'mdy')
1 parsed with %m/%d/%Y
[1] "2012-03-15 UTC"
PS:当然,我不鼓励任何人使用任何额外的依赖,这个答案只是张贴在这里作为替代(快捷remeber)解决方案
要完成图片,您也可以尝试在最近推出(2016-09)封装anytime
其中利用了的Boost
C ++库:
anytime::anytime("3/15/2012")
#[1] "2012-03-15 CET"