R lubridate:当地语言的工作日
R lubridate: weekdays in local language
如何获取本地语言的工作日和月份?
我的代码:
library(lubridate)
data <- c("10-02-2015", "11-03-2015")
data.lubri <- dmy(data)
wday(data.lubri, label=TRUE)
总是returns
[1] Tues Wed
Levels: Sun < Mon < Tues < Wed < Thurs < Fri < Sat
和
month(data.lubri, label = TRUE)
总是returns
[1] Feb Mar
Levels: Jan < Feb < Mar < Apr < May < Jun < Jul < Aug < Sep < Oct < Nov < Dec
我需要它的葡萄牙语版,使用 lubridate,并且已经尝试了大量的语言环境选项,但似乎没有任何与 lubridate 相关的工作。
不过,基本函数 weekdays() 和 months() 可以工作。
问题是在处理日期时,基数 months() 给了我一个无序向量。
我需要它们作为一个有序的因素,以便以后绘图。
我目前的工作是弄脏我的手:
factor(months(data.lubri, abbreviate=TRUE),
levels = c("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul",
"Ago", "Set", "Out", "Nov", "Dez"),
ordered=TRUE)
[1] Fev Mar
Levels: Jan < Fev < Mar < Abr < Mai < Jun < Jul < Ago < Set < Out < Nov < Dez
但这并不优雅...
@erickfis,
我创建了一个函数,可以将您的方法推广到任何语言环境,因为我经常遇到同样的问题:
months2<-function(date){
x<-format(ISOdate(1970, 1:12, 1), "%B")
factor(months(date),ordered=TRUE,levels=x)
}
当前版本的 lubridate(至少 1.7.1)默认允许这样做:
wday(x, label = FALSE, abbr = TRUE,
week_start = getOption("lubridate.week.start", 7),
locale = Sys.getlocale("LC_TIME"))
在旧版本中,您只需将标签添加到保存工作日的因子变量(本例中为荷兰语):
variable <- factor(variable, levels = c('Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun'), labels = c('Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag', 'Zondag'))
如何获取本地语言的工作日和月份?
我的代码:
library(lubridate)
data <- c("10-02-2015", "11-03-2015")
data.lubri <- dmy(data)
wday(data.lubri, label=TRUE)
总是returns
[1] Tues Wed
Levels: Sun < Mon < Tues < Wed < Thurs < Fri < Sat
和
month(data.lubri, label = TRUE)
总是returns
[1] Feb Mar
Levels: Jan < Feb < Mar < Apr < May < Jun < Jul < Aug < Sep < Oct < Nov < Dec
我需要它的葡萄牙语版,使用 lubridate,并且已经尝试了大量的语言环境选项,但似乎没有任何与 lubridate 相关的工作。
不过,基本函数 weekdays() 和 months() 可以工作。
问题是在处理日期时,基数 months() 给了我一个无序向量。
我需要它们作为一个有序的因素,以便以后绘图。
我目前的工作是弄脏我的手:
factor(months(data.lubri, abbreviate=TRUE),
levels = c("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul",
"Ago", "Set", "Out", "Nov", "Dez"),
ordered=TRUE)
[1] Fev Mar
Levels: Jan < Fev < Mar < Abr < Mai < Jun < Jul < Ago < Set < Out < Nov < Dez
但这并不优雅...
@erickfis,
我创建了一个函数,可以将您的方法推广到任何语言环境,因为我经常遇到同样的问题:
months2<-function(date){
x<-format(ISOdate(1970, 1:12, 1), "%B")
factor(months(date),ordered=TRUE,levels=x)
}
当前版本的 lubridate(至少 1.7.1)默认允许这样做:
wday(x, label = FALSE, abbr = TRUE,
week_start = getOption("lubridate.week.start", 7),
locale = Sys.getlocale("LC_TIME"))
在旧版本中,您只需将标签添加到保存工作日的因子变量(本例中为荷兰语):
variable <- factor(variable, levels = c('Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun'), labels = c('Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag', 'Zondag'))