R格式的日期

2013年8月22日
通过

这篇文章最初发表于莫利的研究博客,并慷慨解囊,以188bet app]。(您可以报告关于本页内容的问题金宝搏网址在这里
想在r -blogger上分享你的内容吗?188bet app188bet app 如果你有一个博客,或者在这里如果你不。

进口日期

日期可以从字符,数字,使用POSIXlt和POSIXct格式导入as.Date从功能基础包。

如果你的数据从Excel导出时,它们可能是数字格式。否则,他们将最有可能以字符格式存储。

从字符格式导入日期

如果日期存储为字符,则只需要提供as.Date与您的日期载体和格式,他们目前存储在该可能的日期段格式在下面的表格中列出。
例如,
“84年5月27日”是在格式%米/%d /%Y,而“1984年5月27”是格式%B%d%Y英寸
要导入这些日期,只需提供日期及其格式(如果没有指定,它会尝试%Y-%m-%d,然后%Y/%m/%d):


         
日期<-C(“05/27/84”“05年7月7日”
betterDates<-as.Date(日期,
格式=“%米/%d /%y” 的
>betterDates
[1]“1984-05-27”“2005-07-07”

要么:

日期<-C(“1984年5月27日”“2005年7月7日”
betterDates<-as.Date(日期,
格式=“%B%d%Y”

>betterDates
[1]“1984-05-27”“2005-07-07”

该输出在ISO 8601国际标准格式%Y-%间%d的日期。如果你想在不同的格式使用日期,请阅读“更改日期格式”下方。

从数字格式导入日期

如果从Excel导入数据,可能会有数字格式的日期。我们仍然可以使用as.Date进口这些,我们只需要知道,Excel启动从计数的起源日期,并提供给as.Date
对于Excel在Windows上,起源日期是1899年12月30日的日期后1900年(Excel的设计师认为1900年是闰年,但事实并非如此。)对于Excel在Mac上,起源日期是1904年1月1日。

来自Windows Excel:
日期<-C(3082938540
betterDates<-as.Date(日期,
起源=“1899-12-30”

>betterDates
[1]“1984-05-27”“2005-07-07”

#来自Mac Excel:
日期<-C(2936737078
betterDates<-as.Date(日期,
起源=“1904年1月1日”

>betterDates
[1]“1984-05-27”“2005-07-07”
该输出在ISO 8601国际标准格式%Y-%间%d的日期。如果你想在不同的格式使用日期,看了下步:

    更改日期格式

    如果希望使用标准%Y-%m-%d以外的格式来使用日期,可以使用格式从功能基础包。

    例如,

    格式(betterDates,
    “%A%B%d”

    [1]“太阳”5月27日“周四07年7月”

    正确的世纪

    如果你只有两个数字的年导入数据,你会发现,它假设69至99是1969年至1999年,而00年到68是2000年至2068年(受R中的未来版本的变化)。
    通常,这不是你所希望发生的。这一页给出了几种方法来解决这个问题取决于你的世纪喜好了很好的解释。一种解决方案提供是假设所有日期R在未来将是真正的从上个世纪。该解决方案如下:

    日期<-C(“05/27/84”“05年7月7日”“20年8月17日”
    betterDates<-as.Date(日期,“%米/%d /%y” 的

    >betterDates
    [1]“1984-05-27”“2005-07-07”“2020年8月17日”

    correctCentury<-as.Date (ifelse (betterDates>Sys.Date()
    格式(betterDates,“19% y - % - % d”
    格式(betterDates)))

    >correctCentury
    [1]“1984-05-27”“2005-07-07”“1920-08-17”

    正确的格式的目的

    有您的日期以适当的格式允许R键知道他们是日期,因此知道什么算盘它应该和不应该对它们执行。举一个例子,看我张贴在绘制每周或每月汇总。下面是几个例子:

    >意思是(betterDates)
    [1]“1994年12月16日”

    >马克斯(betterDates)
    [1]“2005-07-07”

    >分钟(betterDates)
    [1]“1984-05-27”

    该代码是在提供要旨

    日期的格式

    转换规范 描述
    %一个 简写的星期 太阳,星期四
    %一个 全周日 周日,周四
    % b或% h 缩写的月份 五月,七月
    %B 全月 5月,7月
    %d 该月的一天
    01-31
    27,07
    引用%j 一年中的哪一天
    001 - 366
    148,188
    %M
    01-12
    05,07
    %U
    01-53
    星期天是一周的第一天
    22,27
    %(重量) 工作日
    0 - 6
    星期天是0
    0,4
    %的W
    00-53
    星期一作为一周的第一天
    21日,27日
    %X 日期,指定位置的
    %Y 无世纪的年份
    00-99
    84年,05年
    %Y 年世纪
    输入:
    以20为前缀的00到68
    69至99前缀19
    1984年,2005年
    %C 世纪 19,20
    %d 日期格式化%米/%d /%Y 84年5月27日,05年7月7日
    %u 工作日
    1 - 7
    周一是1
    7、4
    %N 换行在输出或
    输入任意空白
    %T 输出选项卡或
    输入任意空白

    参考文献

    留下你的评论对于作者,请按照自己的博客上的链接和评论:莫利的研究博客

    188bet appR-bloggers.com报价每日电子邮件更新金宝搏网址 [R新闻和教程金宝搏网址金宝搏网址 和许多其他议题。点击这里,如果你正在寻找张贴或找到一个R /数据科学工作
    想在r -blogger上分享你的内容吗?188bet app188bet app 如果你有一个博客,或者在这里如果你不。



    如果你走到这一步,为什么不订阅更新从网站?选择你的味道:电子邮件推特1188bet app, 要么脸谱网...

    评论都关门了。

    搜索R-博客188bet app

    赞助商

    决不会错过的更新!
    订阅R-bloggers188bet app接收
    电子邮件与最新的[R帖子。
    (您将不会再看到此消息。)

    点击此处关闭(此弹出窗口将不会再次出现)