如何阅读R语言中的日期格式

时间:2015-04-04 03:00:18

标签: r date

我尝试读取03-Nov-11之类的日期,然后使用以下代码:

s<-c("03-Nov-13")
s1<-as.Date(s,"%d-%b-%y")

s1NA

1 个答案:

答案 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;工作正常。