R 中的西班牙日期
Spanish dates in R
我必须修改 R 中的日期向量。然而,日期是用西班牙语写的。如果数据不是英文的,我该如何处理?
例如,“Jan 02 1987”是“ene 02 1987”
您可以通过 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"
根据您的 OS,您可能需要使用略有不同的 Sys.setlocale()
调用。有关详细信息,请参阅 。
如果 Sys.setlocale
不起作用,您可以使用 readr
包中的 parse_date
函数。
例如,
parse_date(c("ene. 30 2016", "feb. 1 2017"), "%b %d %Y", locale = locale("es"))
将return
[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 中的日期向量。然而,日期是用西班牙语写的。如果数据不是英文的,我该如何处理?
例如,“Jan 02 1987”是“ene 02 1987”
您可以通过 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"
根据您的 OS,您可能需要使用略有不同的 Sys.setlocale()
调用。有关详细信息,请参阅
如果 Sys.setlocale
不起作用,您可以使用 readr
包中的 parse_date
函数。
例如,
parse_date(c("ene. 30 2016", "feb. 1 2017"), "%b %d %Y", locale = locale("es"))
将return
[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"))
会起作用。