Data Formats
데이터세트내의 일부 변수의 포맷을 바꿔야 할 경우도 있다.
먼저 각각의 변수의 데이터 타입부터 확인해야 한다.
> sapply(ds,class)
$date
[1] "Date"
$location
[1] "factor"
$min_temp
[1] "numeric"
$max_temp
[1] "numeric"
$rainfall
[1] "numeric"
$evaporation
[1] "numeric"
lubridate를 이용하여 date 변수의 포맷을 다른 것으로 바꿔보자.
> library(lubridate)
> head(ds$date)
[1] "2007-11-01" "2007-11-02" "2007-11-03" "2007-11-04" "2007-11-05"
[6] "2007-11-06"
> ds$date <- ymd(as.character(ds$date))
Error in gsub("+", "*", fixed = T, gsub(">", "_e>", num)) : invalid multibyte string at '<ec><98><a4>?<84>|<ec>삤<ed>썑)(?![[:alpha:]]))|((?<H_s_e>2[0-4]|[01]?\d)\D+(?<M_s_e>[0-5]?\d)\D+((?<OS_s_S_e>[0-5]?\d\.\d+)|(?<S_s_e>[0-6]?\d))))'
에러 발생!!! 이 경우 우선 아래와 같이 as.POSIXct 가 정상적으로 작동하는지 확인해본다.
> as.POSIXct("07-31-2014",format="%m-%d-%Y",tz="UTC")
[1] "2014-07-31 UTC"
>
만약 위와 같이 정상적으로 작동한다면, 아래와 같이 Sys.setlocale()을 이용하여 변경한 후, 포맷변환을 시도한다.
> Sys.setlocale("LC_TIME", "usa")
[1] "English_United States.1252"
> ds$date <- ymd(as.character(ds$date))
> head(ds$date)
[1] "2007-11-01 UTC" "2007-11-02 UTC" "2007-11-03 UTC" "2007-11-04 UTC"
[5] "2007-11-05 UTC" "2007-11-06 UTC"
> sapply(ds, class)
$date
[1] "POSIXct" "POSIXt"
'프로그래밍 Programming' 카테고리의 다른 글
Data Preparation (7) - Clean (Ignore IDs, Outputs, Missing) (0) | 2014.11.29 |
---|---|
Data Preparation (6) - Review (Variable Roles) (0) | 2014.11.29 |
Data Preparation (4) - Review (Meta Data Cleansing) (0) | 2014.11.28 |
Data Preparation (3) - Review (Observations, Structure, Summary) (0) | 2014.11.28 |
Data Preparation (2) - Table Data Frame (tbl_df) (0) | 2014.11.28 |