函数 as.Date 只能识别德语月份 - 但不能识别英语月份

function as.Date just recognizes german month - but not english month

我需要转换 R 中的日期,格式如下: “2011 年 10 月 1 日”。问题是函数 as.Date 只考虑德国月份。在这里,我有一个例子:

> test <- c("15MAI2006","01OCT2011")
> test1 <- as.Date(test, format='%d%B%Y')
> test1
[1] "2006-05-15" NA 

"MAY" 是德语 "MAI"。函数没有得到英文拼写为OCT的日期

如果您'completely sure'语言是德语,试试这个:

Sys.setlocale("LC_ALL","German")

test <- c("15MAI2006","01OKT2011")
as.Date(test, format='%d%B%Y')

[1] "2006-05-15" "2011-10-01"

但是,您的原始数据中有“01OCT2011”,十月应该是 Okt

如果您真的想同时获取英语和德语日期,则需要一次获取一个。

Sys.setlocale("LC_TIME", "de_DE")
test1 <- as.Date(test, format='%d%B%Y')
na.test1 <- is.na(test1)
Sys.setlocale("LC_TIME", "C")
test1[na.test1] <- as.Date(test[na.test1], format='%d%B%Y')

我在上面用于德语的语言环境是 OSX,但您可以在 documentation for Sys.setlocale

找到其他系统的格式