R中的西班牙日期
Posted
技术标签:
【中文标题】R中的西班牙日期【英文标题】:Spanish dates in R 【发布时间】:2021-12-20 22:56:54 【问题描述】:我在 R 中有一个日期向量,我必须修改。然而,日期是西班牙语的。如果数据不是英文,我该如何处理?
例如,“Jan 02 1987”是“ene 02 1987”
【问题讨论】:
【参考方案1】:您可以(暂时)使用Sys.setlocale()
将您的语言更改为“西班牙语”。例如,在我的 Windows 机器上,以下工作
# My default locale is (Australian) English
x <- c("Jan 02 1987", "ene 02 1987")
as.Date(x, "%b %d %Y")
#[1] "1987-01-02" NA
Sys.setlocale("LC_TIME", "Spanish")
as.Date(x, "%b %d %Y")
#[1] NA "1987-01-02"
根据您的操作系统,您可能需要使用略有不同的Sys.setlocale()
调用。详情请见this post。
【讨论】:
【参考方案2】:如果Sys.setlocale
不起作用,您可以使用readr
包中的parse_date
function。
例如,
parse_date(c("ene. 30 2016", "feb. 1 2017"), "%b %d %Y", locale = locale("es"))
会回来
[1] "2016-01-30" "2017-02-01"
(由于我的 Sys.locale,月份以数字形式打印。这无关紧要。)
如果您的向量在一个月后没有.
,
x <- c("ene 30 2016", "feb 1 2017")
parse_date(paste(paste0(word(x,1), "."), word(x,2,3)), "%b %d %Y", locale = locale("es"))
会起作用的。
【讨论】:
以上是关于R中的西班牙日期的主要内容,如果未能解决你的问题,请参考以下文章
在西班牙计算机上将 .csv 文件读入 R 时忽略逗号分隔符 [重复]