我有一个包含日期的文本文件,并希望将其转换为数据表。
转换日期,例如 03-FEB-2011 可以使用
data$fecha <- as.Date(data$textDate , "%d-%b-%Y")
问题是该专栏是西班牙语,所以我没有得到 Jan 而是 Ene,或者 Aug 而不是 Ago。如何更改语言环境以使 %b 缩写适用于西班牙语?有没有其他方法可以实现这一目标?
正如我之前的评论,这是一个完整且经过测试的答案。正如我所说,您必须将您的数据设置locale
为正确的数据(在这种情况下为西班牙语)。
允许您执行此操作的代码如下:
Sys.setlocale(locale="es_ES.UTF-8")
您可以看到可用locale
s的完整列表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"
如果您无法将语言环境添加到您的操作系统,
> 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"