《Learning R》笔记 Chapter 11 时间日期 上 原生格式

原生格式

R中自带的时间数据有3种格式。
POSIXct格式本质上是从1970年起始到某时刻的秒数。
POSIXlt格式是将年月日时分秒储存的一个list。

> x <- Sys.time()
> y <- as.POSIXlt(x)
> x ; y
[1] "2018-02-23 19:54:03 CST"
[1] "2018-02-23 19:54:03 CST"
> unclass(x)
[1] 1519386843
> unclass(y)
$sec
[1] 3.42422
$min
[1] 54
#下略
> y$sec #可以用list的方法调取内容
[1] 3.42422
> y$min
[1] 54

Date格式,储存从1970年开始到现在的日数。

> as.Date(x)
[1] "2018-02-23"

和string的相互转换

strptime()接受string输入,输出POSIXct或POSIXlt格式的日期数据。as.posixct,as.posixlt,as.date函数都是strptime的wrapper。
strptime是‘STRing Parse TIME’的缩写,它对参数的设定有较为严格的要求。

strftime则接受时间格式,返回string。它是‘STRing Format TIME’的缩写。

> strftime(y,'It was %d %B, %Y')
[1] "It was 23 二月, 2018"

运算

对POSIX格式加减一个正整数,可以前后移动秒数。对Date格式加减正整数则是前后移动天数
两个同格式的时间数据可以做减法。减法输出结果的格式是‘difftime’,unclass之后是整数。

> as.Date(x) - as.Date('1926-08-17')
Time difference of 33428 days

difftime()函数能够更精确地控制输出差值的精确度,可以到小时,分钟,秒。
时间格式数据同样可以输入seq,rep,round和cut函数作为参数。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,952评论 0 38
  • 清晨,浓重的雾霾来得比床边的闹钟还准时,大街上满是裹得严严实实的人们,我们总是自认为对身处的这座城市了如指掌,但是...
    不打烊实验室阅读 1,413评论 3 2
  • 三天的杭州之行,仿佛梦一般。每天高节奏高强度地听讲座,我没有丝毫倦怠,反而被老班闪烁的智慧和灵动深深吸引。作为一个...
    苇絮轻扬阅读 241评论 1 4
  • 风为云改变了前行的方向,云为月改变了飘逸的性格,月为花改变了映照的角度,花为我改变了摇曳的影子,我为你改变...
    冰夫阅读 170评论 0 0