R에서 SAS의 영구파일 sas7bdat 이용하기

2011-07-27
R package R-Tips SAS sas7bdat

최근 R package가 통계 분석에 많이 사용된다고는 하지만, 기업에서는 SAS나 SPSS를 더 많이 사용하는 것으로 알고 있습니다. 저도 대학이나 연구기관의 의뢰에는 R를 사용하지만, 기업의 데이터 분석에는 SAS를 이용합니다.

간혹 클라이언트로부터 받은 데이터가 SAS의 영구 파일형식인 sas7bdat일 때가 있습니다. 분석할 때 아무래도 손에 익은 R을 선호하게 되는데 SAS를 사용할 수 있는 환경에 있으면 데이터를 일반 ASCII 파일로 변환하여 사용하면 되지만 SAS를 사용할 수 없는 환경에 있을 때도 있습니다.

물론 R에서 SAS 형식의 데이터를 불러오는 함수 read.ssd()가 있긴 하지만, 이도 시스템에 SAS가 설치되어 있어야만 이용할 수 있어서 이래저래 불편했었습니다. 그런데 최근 sas7bdat라는 패키지가 공개되어 간단하게 이 형식의 데이터를 R에 불러올 수 있게 되었습니다.

먼저 sas7bdat 패키지를 R에 인스톨합니다.

> install.packages("sas7bdat")

예를 들어 SAS에서 제공하는 예제 데이터 cars.sas7bdat를 R로 불러 오기 위해서는

> library(sas7bdat)
> cars <- read.sas7bdat("https://www.dropbox.com/s/fhymgehc12fxtmp/cars.sas7bdat?dl=1")

와 같이 함수 read.sas7bdat()를 이용하면 R의 데이터프레임 형식으로 변환시킬 수 있습니다.

그 후엔 원하는 분석을 진행하면 되겠지요.

> summary(cars)
#>       MPG            CYL            ENG           WGT      
#>  Min.   : 9.0   Min.   :3.00   Min.   : 68   Min.   :1613  
#>  1st Qu.:17.0   1st Qu.:4.00   1st Qu.:105   1st Qu.:2225  
#>  Median :22.8   Median :4.00   Median :151   Median :2804  
#>  Mean   :23.4   Mean   :5.47   Mean   :194   Mean   :2978  
#>  3rd Qu.:29.0   3rd Qu.:8.00   3rd Qu.:276   3rd Qu.:3615  
#>  Max.   :46.6   Max.   :8.00   Max.   :455   Max.   :5140
> with(cars, summary(MPG))
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>     9.0    17.0    22.8    23.4    29.0    46.6

아직 대용량 데이터를 대상으로 써보지는 않았지만, SAS가 없어도 직접 sas7bdat 형식의 파일을 R에서 이용할 수 있다는 점에서 유용하게 사용할 수 있을듣 합니다.

comments powered by Disqus