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包的相關內容。




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