8.3 날짜-시간 변수

만일 날짜 컬럼이 시간 정보(예, 날짜-시간)를 추가적으로 포함하고 있다면, 문자열을 POSIXct 클래스로 변환하기 위해 함수 이름의 y, m, d에 하나 이상의 h, m, s 등을 추가할 수 있다. POSIXct 클래스는 1970년 초를 기준으로 이후 경과된 초에 대한 수치를 나타내는 숫자로 날짜-시간 변수를 저장한다.

dates 데이터 세트의 다섯 번째 컬럼인 decision_time날짜-시간 변수이다(물론 lubridate() 함수가 무시할 Approved/Denied 문자열을 데이터의 앞 부분에 포함하고 있다). 구체적으로 날짜-시간은 월, 일, 년, 시, 분, 초 등으로 기록되어 있기 때문에, mdy_hms() 함수를 사용할 것이다:

# month day year hour minute second
mdy_hms(d$decision_time)
## [1] "2015-10-10 07:15:55 UTC" "2011-09-27 14:57:23 UTC"
## [3] "2015-04-24 02:03:03 UTC"
# POSIXct is a standard way of representing calendar time
class(mdy_hms(d$decision_time))
## [1] "POSIXct" "POSIXt"

표준 시간대(“time zone” standard)의 디폴트 값으로 UTC (Coordinated Universal Time)가 사용되었다. 시간대를 설정하기 위해서는 tz = 인수를 사용한다. 유효한 시간대 사양 목록을 확인하려면 OlsonNames()함수를 시행하기 바란다.

# we'll use this for our dates variable
dates$decision_time <- mdy_hms(d$decision_time, tz="US/Pacific")
dates$decision_time
## [1] "2015-10-10 07:15:55 PDT" "2011-09-27 14:57:23 PDT"
## [3] "2015-04-24 02:03:03 PDT"
# first 20 valid time zones
head(OlsonNames(),  n=20)
##  [1] "Africa/Abidjan"       "Africa/Accra"         "Africa/Addis_Ababa"  
##  [4] "Africa/Algiers"       "Africa/Asmara"        "Africa/Asmera"       
##  [7] "Africa/Bamako"        "Africa/Bangui"        "Africa/Banjul"       
## [10] "Africa/Bissau"        "Africa/Blantyre"      "Africa/Brazzaville"  
## [13] "Africa/Bujumbura"     "Africa/Cairo"         "Africa/Casablanca"   
## [16] "Africa/Ceuta"         "Africa/Conakry"       "Africa/Dakar"        
## [19] "Africa/Dar_es_Salaam" "Africa/Djibouti"