我尝试读取03-Nov-11
之类的日期,然后使用以下代码:
s<-c("03-Nov-13")
s1<-as.Date(s,"%d-%b-%y")
但s1
为NA
。
答案 0 :(得分:3)
%b
确实存在问题。我虽然幸运,但是:
s1 <- "03-11-13"
as.POSIXct(s1, format = "%d-%m-%y")
# [1] "2013-11-03 EDT"
s2 <- "03-NOVEMBRE-13" # Note that I have Fr locale, hence the ending in "BRE"
as.POSIXct(s2, format = "%d-%B-%y")
# [1] "2013-11-03 EDT"
as.POSIXct(s2, format = "%d-%b-%y")
# [1] "2013-11-03 EDT"
但是,缩写版似乎在Windows上根本不起作用:
s3 <- "03-NOV-13"
as.POSIXct(s3, format = "%d-%B-%y")
# [1] NA
as.POSIXct(s3, format = "%d-%b-%y")
# [1] NA
修改强>
在尝试Linux之后,%b会做出预期的事情!
as.POSIXct(s3, format="%d-%b-%y")
# [1] "2013-11-03 PDT"
as.POSIXct(s3, format="%d-%B-%y")
# [1] "2013-11-03 PDT"
编辑2
提交错误报告;
见https://bugs.r-project.org/bugzilla/show_bug.cgi?id=16301
编辑3
在我的结尾,我错了 - 我的语言环境的缩写是由:
z <- seq.Date(as.Date('2015-01-01'), by='month', len = 12)
format(z, "%d-%b-%y")
# [1] "01-janv.-15" "01-févr.-15" "01-mars-15" "01-avr.-15" "01-mai-15"
# [6] "01-juin-15" "01-juil.-15" "01-août-15" "01-sept.-15" "01-oct.-15"
# [11] "01-nov.-15" "01-déc.-15"
所以使用&#34; nov。&#34;,&#34; NOV。&#34;,&#34; NOVEMBRE&#34;或者&#34; novembre&#34;工作正常。