R读缩写月份形成一个非英语的日期

Mar*_*sco 6 r date as.date

我有一个包含日期的文本文件,并希望将其转换为数据表.

转换03-FEB-2011等日期可以完成

data$fecha <- as.Date(data$textDate , "%d-%b-%Y")
Run Code Online (Sandbox Code Playgroud)

问题是这个专栏是西班牙语,所以我不会得到Jan但是Ene,或者8月而是Ago.如何更改语言环境,以便%b缩写适用于西班牙语?有没有其他方法来实现这一目标?

Sab*_*DeM 8

正如我之前的评论,这是一个完整且经过测试的答案.正如我所说,你必须设置locale一个适合你的数据(在这种情况下是西班牙语).

允许您执行此操作的代码如下:

Sys.setlocale(locale="es_ES.UTF-8")
Run Code Online (Sandbox Code Playgroud)

您可以看到可用locale的完整列表system("locale -a", intern = TRUE)(不确定它是否适用于Windows系统).

这是一个例子:

x <- c("03-Ago-2011", "21-Ene-2012")
as.Date(x, format = "%d-%b-%Y")
[1] "2011-08-03" "2012-01-21"
Run Code Online (Sandbox Code Playgroud)


小智 6

如果您无法在操作系统中添加区域设置,

> Sys.setlocale(locale = "es")
[1] ""
Warning message:
In Sys.setlocale(locale = "es") :
OS reports request to set locale to "es" cannot be honored
Run Code Online (Sandbox Code Playgroud)

readr()有方法来指定甚至创建语言环境:

> library(readr) 
> parse_date("31 DICIEMBRE 2011","%d %B %Y",locale=locale("es"))
[1] "2011-12-31"
Run Code Online (Sandbox Code Playgroud)

  • 也可以试试 `Sys.setlocale(locale = "English")` 或 `Sys.setlocale(locale = "C")`。 (2认同)