본문 바로가기
SAS

[SAS] SAS를 이용해 조건에 맞는 데이터만 가져오는 방법

by SASBIGDATA김진휘 2014. 2. 4.

데이터에서 조건에 맞는 원하는 값만 가져오고 싶은 경우가 있다.

이런경우 일반적으로 가장 많이 이용하는 것이 if문을 이용한다.

아래 사진 참조

 

 

위의 사진처럼 a.ace2라는 데이터에서 변수 order가 1인 것들만 가져와라는 것인데

보통 if를 많이 이용한다. 하지만 if만 있는 것일까? 아니다. where문을 이용해서도 가져올 수 있다.

 

 

 

if문의 부분에 where의 명령어를 삽입하여도 같은 결과가 나온다. 위 사진 참조

그렇다면 if와 where의 차이가 무엇일까?

 

where문장은 자료를 data단계로 불러들이기 전 조건에 일치하는 즉, 만족하는 자료만 선택해 준다.

그러므로 전체자료를 읽어 들인 후에 조건에 맞는 것을 찾는 if 문장보다 더 효율적인 것이다.

이것이 자료를 가져올때 if와 where의 차이이다.

 

그럼 빅데이터(bigdata)에서 자료를 추출할때 뽑아내는 데이터의 양 또한 빅데이터라면?

if보다는 where문을 이용하는 것이 시간적으로 효율적이다고 볼 수가 있다.

 

추가적으로 where문장은 비실행문이므로 if-then 문장에서는 사용할 수 없다.

 

주의) 간혹 데이터를 가져오는데 변수는 가져와지는데 데이터(관측치)가 0개로 가져와지는 경우가 있는데

대부분 그런 경우는 위의 코딩을 예로 들자면 if order=1 은 1이 수치형자료이므로 바로 가져와진다.

만약 1이 문자형이라면? if order='1'; 이런식으로 따옴표를 추가해야 정상적으로 데이터를 추출할 수 있다.

문자형 자료를 가져올때 '' <-따옴표를 추가하지 않는 실수를 하여 데이터가 가져와지지 않는다고 당황해 하는 경우가 많다. 주의하자.

 

www.sasbigdata.com  김 진 휘

 

 

 

 

 

댓글