首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lubridate:平日用当地语言

lubridate:平日用当地语言
EN

Stack Overflow用户
提问于 2017-03-29 17:14:17
回答 2查看 3.5K关注 0票数 3

我怎样才能得到当地语言的平日和月份?

我的代码:

代码语言:javascript
复制
library(lubridate)
data <- c("10-02-2015", "11-03-2015")
data.lubri <- dmy(data)
wday(data.lubri, label=TRUE)

总是回来

代码语言:javascript
复制
[1] Tues Wed 
Levels: Sun < Mon < Tues < Wed < Thurs < Fri < Sat

代码语言:javascript
复制
month(data.lubri, label = TRUE)

总是回来

代码语言:javascript
复制
[1] Feb Mar
Levels: Jan < Feb < Mar < Apr < May < Jun < Jul < Aug < Sep < Oct < Nov < Dec

我需要葡萄牙语,使用lubridate,并且已经尝试了大量的地区选项,但是没有任何与lubridate相关的东西似乎有效。

不过,基本函数是工作日()和月份(),工作。

问题是基月份()在处理日期时给出了一个无序向量。

我需要他们作为一个有序的因素,为以后的阴谋。

我现在的工作就是弄脏我的手:

代码语言:javascript
复制
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

但这可不是高雅的..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-16 16:01:14

@erickfis

我创建了一个函数,将您的方法推广到任何地区,因为我经常面临相同的问题:

代码语言:javascript
复制
months2<-function(date){
x<-format(ISOdate(1970, 1:12, 1), "%B")
factor(months(date),ordered=TRUE,levels=x)
}
票数 1
EN

Stack Overflow用户

发布于 2017-11-14 11:40:59

目前版本的lubridate (至少1.7.1)默认允许这样做:

代码语言:javascript
复制
wday(x, label = FALSE, abbr = TRUE,
  week_start = getOption("lubridate.week.start", 7),
  locale = Sys.getlocale("LC_TIME"))

在旧版本中,您可以简单地将标签添加到包含周天数的因素变量中(本例中为荷兰语):

代码语言:javascript
复制
variable <- factor(variable, levels = c('Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun'), labels = c('Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag', 'Zondag'))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43099990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档