- 《Learning R》笔记 Chapter 11 时间日期
- 《Learning R》笔记 Chapter 11 时间日期
- 《Learning R》笔记 Chapter 10 R包
- 《Learning R》笔记 Chapter 13 Clean
- 《Learning R》笔记 Chapter 12 Retri
- 《Learning R》笔记 Chapter 13 Clean
- 《Learning R》笔记 Chapter 15 Modeli
- 《Learning R》笔记 Chapter 14 Explor
- 《Learning R》笔记 Chapter 6 上 环境
- 《Learning R》笔记 Chapter 6 下 函数
原生格式
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函数作为参数。
网友评论