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