我有一个包含日期的文本文件,想要将其转换为数据表。
可以使用以下方法转换像03-FEB-2011这样的日期:
data$fecha <- as.Date(data$textDate , "%d-%b-%Y")
问题在于,该列是用西班牙语显示的,因此我看到的是Ene而不是Jan,Ago而不是Aug。 如何更改区域设置才能使%b缩写适用于西班牙语?是否有其他方法可以实现这一点?
如我之前的评论所述,这里是完整且经过测试的答案。正如我所说,您必须将locale
设置为适合您的数据的语言环境(在本例中为西班牙语)。
允许您执行此操作的代码如下:
Sys.setlocale(locale="es_ES.UTF-8")
您可以使用 system("locale -a", intern = TRUE)
命令查看所有可用的 locale
列表(不确定在 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"
Sys.setlocale(locale = "English")
或者 Sys.setlocale(locale = "C")
。 - G. Grothendieck
Sys.setlocale(locale = "en_US.UTF-8")
,当然,你需要使用正确的语言环境,你可以通过system("locale -a", intern = TRUE)
找到它。如果运行良好,请告诉我。 - SabDeM