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에서 이용할 수 있다는 점에서 유용하게 사용할 수 있을듣 합니다.