1 min read

R: DateTime格式的心得


概述

R中主要的時間物件為POSIXctPOSIXltDate-Time Classes第8頁內提到設計者們在設計這類物件的考量:

  • 日期格式應該由locale參數來決定。
  • 時間應該由電腦的Time zones來決定。
  • 參考資料庫標準(SQL99 ISO)中使用的時間格式timestamp with time zone
  • 考量到跨平台,使用[POSIX]

[POSIX]是以UTC為基準,以c語言的double型態來儲存的時間格式, 而POSIXct則是代表以這種絕對座標所表示的時間。POSIXlt則是另一種包含timezones的格式 (lt代表local time)。其中timezone是以屬性tzone來代表的。

以以下的程式碼為例: rout example from [Date-Time Classes] > file.info(dir())[, "mtime", drop=FALSE] data 2012-02-29 21:18:11 在預設下,是以ISO標準格式來表示日期時間。 r example from [Date-Time Classes] > file_time <- file.info(dir())[, "mtime", drop=FALSE] > file_time data 2012-02-29 21:18:11 > format(file_time, format="%x %X") data 2012/2/29 下午 09:18:11

另外再列了幾個Date-Time Classes內的範例

函數心得

Sys.time

r Sys.time function () 回傳POSIXct物件來表示現在的時間

Sys.Date

r Sys.time function () {as.Date(as.POSIXlt(Sys.time()))} 回傳Date物件來表示現在的日期

trunc

r trunc.POSIXt function (x, units = c("secs", "mins", "hours", "days"), ...)x的時間格式轉換為以units為單位

參考資料