我有一个包含日期的文本文件,并希望将其转换为数据表.
转换03-FEB-2011等日期可以完成
data$fecha <- as.Date(data$textDate , "%d-%b-%Y")
Run Code Online (Sandbox Code Playgroud)
问题是这个专栏是西班牙语,所以我不会得到Jan但是Ene,或者8月而是Ago.如何更改语言环境,以便%b缩写适用于西班牙语?有没有其他方法来实现这一目标?
正如我之前的评论,这是一个完整且经过测试的答案.正如我所说,你必须设置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)