learning R with swirl-dates and times

 R语言有一种特殊的方法来表示日期和时间,日期通常由"date"型数据来表示,时间通常由“POSIXCT”和“POSIXLT”型来表示。

 

说明R存储日期采用是Date型的数据。unclass()函数表示了现在距离那个时候过了多少天。

如果我们想表示1970-01-01之前的数据,我们可以用下面的方式来表示:

下面我们再来看R是怎样存储时间的。

使用unclass()函数,我们可以得到距离距离1970年经过了多少秒。


  默认情况下,Sys.time()函数返回一个类型为POSIXct类型的数据,但是我们可以强制将结果转化为POSIXLT类型的数据,方法是使用as.POSIXlt函数。两者的区别在于,POSIXct格式的时间:以有符号整数形式存储,表示从1970-01-01到该时间点经过的秒数,
POSIXlt格式的时间:以字符串形式存储,包含年月日等,是一张存储日期和时间的表。



弄清楚了以上三种类型的数据,我们来学习能从中抽取有效信息的函数,他们可以作用于上述任何一种类型的对象:

weekdays()函数返回对象的星期。months()返回月份,quarters()返回季度。具体操作如下图所示:


有时候数据集里的日期和时间的形式是R语言所不能辨别的。这时strptime()函数可以将字符向量转化为POSIXlt。这么看来,它与as.POSIXlt的作用类似,区别在于输入不需要是(YYYY-MM-DD)这种特殊的形式。如下面的例子所示:

此时可以发现

同样,操作符也可以用于日期和时间之中,包括数字操作符和比较操作符。


如果我们对时间处理的很频繁,我们可以使用lubridate包的相关内容。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章