美文网首页
63.关于date-time组件的获得与更改

63.关于date-time组件的获得与更改

作者: 心惊梦醒 | 来源:发表于2021-09-20 12:51 被阅读0次

    【上一篇:62.关于日期和时间之创建】
    【下一篇:64.关于date-time组件的“四舍五入”】

        前文讲了如何从字符串、组件获得日期-时间,本篇讲从组件获得日期-时间(make_datetime())的逆过程:从日期-时间得到组件。这一系列函数虽然多,但很好记忆,参数也少。
        这些函数包括:year()、month()、day()、yday()、mday()、wday()、qday()、hour()、minute()、second()。

    1. 这些函数的功能是获得或更改date-time的component,例如:
    year(x)             #获得
    year(x) <- value    #更改
    x:date-time对象
    value:数字对象
    
    1. 关于输入(具体如下),总结下来就是只需知道常用的就好,其他的用到的时候查一下就好了。
    year():Date-time必须是POSIXct、POSIXlt、Date、Period或任何其他可转换为POSIXlt的对象。
    day系列函数:输入是POSIXct, POSIXlt, Date, chron, yearmon, yearqtr, zoo, zooreg, timeDate, xts, its, ti, jul, timeSeries或者fts 对象
    month()、hour()、minute()、second():Date-time必须是POSIXct, POSIXlt, Date, Period, chron, yearmon, yearqtr, zoo, zooreg, timeDate, xts, its, ti, jul, timeSeries和fts对象。
    
    1. month()和wday()的参数比其他的略多,默认返回十进制的数字,即一年的第几个月份。若设置label=TRUE且abbr=TRUE(默认设置),返回值是月份/周几的英文简称;设置label=TRUE且abbr=TRUE,返回值是全称。且当label=TURE时,返回的是一个ordered factor
          PS:例如ymd_hms()函数的返回值是一个POSIXct对象,ymd()返回一个Date对象。用str()函数可以看出对象的类型。
    2. wday()函数有个week_start参数,表示按照ISO(国际标准化组织)惯例,一周的哪一天开始:1表示周一,7(默认)表示周日,当label = TRUE时,这将是返回因子的第一级。您可以设置lubriate .week.start选项来全局控制该参数。
    wday(
      x,
      label = FALSE,
      abbr = TRUE,
      week_start = getOption("lubridate.week.start", 7),
      locale = Sys.getlocale("LC_TIME")
    )
    

        其实我更关心把这些component单独拿出来有什么应用呢?看了书之后就有了认知:在flights数据集中,可以通过一系列的转换得到全年中周几出发的航班数量最多或最少;还可以看单个小时内,第几分钟出发的航班的平均到达延误情况。


    关于更改date-time component的方法

        更改component的方法处理上述方法之外,还可以用update()函数。上述更改compnent的方法会直接更改原来的值,update()函数则不会。

    (datetime <- ymd_hms("2016-07-08 12:34:56"))
    update(datetime, year = 2020, month = 2, mday = 2, hour = 2)
    而且如果某个compnent设置大了,函数还会自动进位滚动
    

    【上一篇:62.关于日期和时间之创建】
    【下一篇:64.关于date-time组件的“四舍五入”】

    相关文章

      网友评论

          本文标题:63.关于date-time组件的获得与更改

          本文链接:https://www.haomeiwen.com/subject/rylegltx.html