본문 바로가기

sas where2

[SAS] sas에서 코딩방법에 따른 처리 속도의 차이(if문의 위치) sas로 빅데이터를 핸들링하면서 항상 답답하고 문제되는것이 처리속도 시간이다. 큰데이터를 다룰수록 속도와의 전쟁인데, 각자 자기만의 스타일로 다양하게 프로그래밍하지만 코딩을 가장 최적화 시키면, 데이터가 크면 클수록 처리속도 시간의 차이는 엄청나다. 아래의 간단한 예를 보고 data step에서 if문 코딩을 최적화하는 방법을 알아보도록 하자. 위의 두개의 데이터셋 생성의 조건은 다음과 같다. test 데이터셋의 department변수에서 기획부값만 가져오고 각각 사칙연산의 결과를 나타내는 변수를 생성하라. 위의 결과 처럼 코딩의 순서는 다르지만 결과는 같다. 하지만 만약 이 데이터가 예제와 달리 방대한 양의 데이터라면 이 두가지의 코딩 처리속도는 분명히 차이가 난다. 왼쪽의 코딩은 if문이 먼저 나타나.. 2014. 5. 16.
[SAS] SAS를 이용해 조건에 맞는 데이터만 가져오는 방법 데이터에서 조건에 맞는 원하는 값만 가져오고 싶은 경우가 있다. 이런경우 일반적으로 가장 많이 이용하는 것이 if문을 이용한다. 아래 사진 참조 위의 사진처럼 a.ace2라는 데이터에서 변수 order가 1인 것들만 가져와라는 것인데 보통 if를 많이 이용한다. 하지만 if만 있는 것일까? 아니다. where문을 이용해서도 가져올 수 있다. if문의 부분에 where의 명령어를 삽입하여도 같은 결과가 나온다. 위 사진 참조 그렇다면 if와 where의 차이가 무엇일까? where문장은 자료를 data단계로 불러들이기 전 조건에 일치하는 즉, 만족하는 자료만 선택해 준다. 그러므로 전체자료를 읽어 들인 후에 조건에 맞는 것을 찾는 if 문장보다 더 효율적인 것이다. 이것이 자료를 가져올때 if와 where.. 2014. 2. 4.