7

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

转换日期,例如 03-FEB-2011 可以使用

data$fecha <- as.Date(data$textDate , "%d-%b-%Y")

问题是该专栏是西班牙语,所以我没有得到 Jan 而是 Ene,或者 Aug 而不是 Ago。如何更改语言环境以使 %b 缩写适用于西班牙语?有没有其他方法可以实现这一目标?

4

2 回答 2

9

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

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

Sys.setlocale(locale="es_ES.UTF-8")

您可以看到可用locales的完整列表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"
于 2015-08-18T09:27:09.940 回答
6

如果您无法将语言环境添加到您的操作系统,

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

readr()可以指定甚至创建语言环境:

> library(readr) 
> parse_date("31 DICIEMBRE 2011","%d %B %Y",locale=locale("es"))
[1] "2011-12-31"
于 2017-04-07T07:25:01.993 回答