【问题标题】:Possible to have date variable in day-month-year format in R?在 R 中可以有日期变量的日-月-年格式吗?
【发布时间】:2020-08-15 20:52:12
【问题描述】:

我正在使用 Rmarkdown 制作“制作你自己的图表教程”, 我有一个带有日期变量(格式:日-月-年)的数据集,使用 dmy(variable) 我可以正确地将变量分类为“日期”变量(格式:年-月-日)。

用户必须根据此日期进行过滤,并且鉴于荷兰人使用日-月-年格式,我希望允许他们根据此格式进行过滤。 (我可以简单地告诉他们以年-月-日格式进行过滤,但这会使练习复杂化。)

问题的目标:让 R 将变量识别为日期,但使用日-月-年格式

date <- "28-02-2020"
date <- as.Date(date, "%d-%m-%Y")
class(date)

再次:日期现在给出“2020-02-28”-我想要“28-02-2020”(类:日期)

【问题讨论】:

    标签: r lubridate


    【解决方案1】:

    据我了解,不,不可能

    在内部,R 将日期存储为自 1970 年 1 月 1 日以来的天数,并以“YYYY-mm-dd”格式打印出来。鉴于世界各地的人们使用不同的格式,如果不是这样,那将是非常混乱的。

    附带说明,如果您需要绘制数据,ggplot2 可以让您选择正确格式化日期,而无需将它们转换为字符或因子。

    作为附注 2,base r 允许您调整日期的格式,这取决于可用的系统区域设置,您可以设置(这在不同的系统上有所不同,我使用的是 ubuntu):

    Sys.setlocale("LC_TIME", "en_US.utf8")
    format(Sys.Date(), format = "%Y-%b-%d")
    [1] "2020-May-01"
    
    Sys.setlocale("LC_TIME", "de_CH.utf8")
    format(Sys.Date(), format = "%Y-%b-%d")
    [1] "2020-Mai-01"
    

    在此处查看更多信息:

    How to change the locale of R?

    How to set the default language of date in R

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 2020-01-08
      • 1970-01-01
      • 2018-10-24
      • 2014-03-21
      • 2014-11-29
      • 1970-01-01
      相关资源
      最近更新 更多