as.Date在设置C语言环境后返回NA

时间:2016-11-11 19:12:55

标签: r date

我正在尝试设置C语言环境,以便在将字符对象转换为日期时,我不会获得NA值。我得到了这个解决方案from this question,但它对我不起作用。当我运行第一个注释行时,

> lct <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "C")

我收到以下警告:

Warning message:
In readLines(outfile) :
  incomplete final line found on 'tmp/Rtmp8AJy9P/Rhttpd9742ffa74dc'
[1] "C"

然后,当我尝试将角色对象转换为日期时,我仍然获得了班级日期的NA。

> x <- "2015-02-15"
> z <- as.Date(x, "%Y-%B-%d")
> Sys.Setlocale("LC_TIME", lct)
[1] "en_US.UTF-8"
> z
[1] NA

是否有人知道该警告意味着什么,以及它是否会影响我之后运行的转换?

1 个答案:

答案 0 :(得分:1)

> x <- "2015-02-15"
> z <- as.Date(x, "%Y-%B-%d")
> Sys.Setlocale("LC_TIME", lct)
[1] "en_US.UTF-8"
> z
[1] NA

您的格式错误,因为%B代表文字,未缩短的月份。证人:

R> as.Date("2015-02-15", "%Y-%m-%d")
[1] "2015-02-15"
R> as.Date("2015-February-15", "%Y-%B-%d")
[1] "2015-02-15"
R> 

所以我认为您的语言环境问题可能会分散注意力。