728x90

오픈소스인 R이 공개되면서 그동안 통계분석 분야에서 독보적으로 많이 사용된

SAS에 대한 사용이 줄어들고 있습니다.

앞으로 각 장 마다 설명이 되는 SASR을 이용하여도 분석을 할 수 있는 것을 보이기 위해 준비했습니다.

SASR 프로그램을 비교하기도 하고 그 결과물을 비교해 보면 R에 대한 활용도가 더욱 높아질 것이라 생각됩니다.

/* 간단한 SAS 프로그램 01_simple.sas */
DATA a1;
INPUT gender $ wei hei age join $ ;
CARDS;
F 65 171 23 2002-01-23
F 66 172 24 2002-02-29
F 69 176 38 2003-01-23
M 67 173 43 2003-05-05
M 68 177 40 2004-04-31
M 72 178 42 2004-06-24
;
PROC PRINT;
VAR gender wei hei age join;
RUN;

INPUT gender $ wei hei age join $ ;

  변수 gender 문자($), 변수 wei, hei, age 는 숫자, join 은 문자($) 임을 나타냅니다.

 

PROC PRINT;
VAR gender wei hei age join; 

    변수 gender wei hei age join 를 순서대로 출력합니다.
    그런데 제일 뒤에 있는 join 은 8자리만 나타나며 잘려 보입니다.

    이것은 SAS 에서는 아무런 지정이 없으면 문자는 8자리만 인식합니다.

    INPUT 문에서 제일 끝에 join $10.; 이렇게 했더라면 올바르게 출력됩니다. 이는 추후에 설명드리겠습니다.

 

SAS 결과

# 간단한 R 프로그램 01_simple.R
(wei <- c( 65, 66, 69, 67, 68, 72))
(hei <- c(171,172,176,173,177,178))
(age <- c(23,24,38,43,40,42))
join <- c("2002-01-23","2002-02-29","2003-01-23","2003-05-05","2004-03-31", "2004-06-24")
a1 <- data.frame(wei,hei,age,join)
a1

 

[설명]

R에서는 각 변수(벡터라고 합니다)를 입력할 때에는 앞에 c(combine 또는 concatenate)를 붙이고 순서대로 데이터를 입력하면 됩니다.

그리고 이렇게 만들어진 벡터들(또는 변수들)을 하나의 데이터셋으로 묶는데 data.frame 를 사용합니다.

 

SAS는 DATA문과 PROC 문으로 구분됩니다.

R에서는 (주로) 데이터프레임(data.frame) 객체를 이용합니다.

R로 하면 프로그램의 양이 훨씬 줄어 듭니다.

 

그리고 주석문을 처리할 때 SAS에서는  "*" 를 사용하고 R에서는 "#" 를 사용합니다.

 

R 결과

+ Recent posts