본문 바로가기
공부중/1 SAS

SAS 데이터셋 삭제하기 [PROC DELETE]

by E__E 2020. 3. 19.

SAS에서 작업을 하다보면, 최종 데이터셋을 정리하기 전까지 여러개의 데이터셋을 생성하게 된다. 

 

WORK 또는 라이브러리 폴더에서 데이터셋을 삭제할때 가장 많이 하는 방법은  

데이터셋 클릭 -> 마우스 오른쪽Click -> 삭제 또는 DELETE키를 이용해 직접 삭제하는 것이다. 

1.탐색기에서 직접 삭제하기

하지만 삭제할 데이터셋이 여러개의 라이브러리에 위치한 경우에는 탐색기에서 여러번 왔다갔다?! 거려야 하고 데이터셋이름이 비슷할 경우 잘못 삭제하는 실수를 할 수도 있다. 

또, 여러개의 데이터셋을 한꺼번에 삭제하고자 할때나 삭제한 기록을 표시해놓아야 할때에는 명령문을 사용해서 삭제하는 방법이 매우 유용하다. 

 

이제 방법을 알아보자. 

명령문은 매우 간단하다. 

PROC DELETE DATA=삭제하려는 데이터셋; RUN; 

(예시)

① proc DELETE data=a1;          run; 
proc DELETE data=a3 a4 a5 ; run; 
proc DELETE data=a6-a10;     run; 

 

PROC DELETE, LOG창 결과

 

예시 ②,③과 같이 한개 이상의 데이터셋 일 경우 데이터셋을 나열해서 적으면 한번에 삭제가 된다.

예시 ③처럼 데이터셋 이름이 반복되는 경우 A6,A7,A8,A9,A10 이렇게 순서를 가지는 형태이면 '-'을 이용하면 모두 적을 필요 없이 첫번째와 마지막 데이터셋 이름만 적어주면 된다. 

(이때, 데이터셋 이름이 A1_2, A2_2, A3_2 와같이 중간에 숫자가 바뀌는 경우는 실행되지 않는점 유의) 

 

Tip) 데이터셋이 엄청 많고, 지정 라이브러리가 여러개인 경우 

① PROC CONTENTS DATA=(라이브러리)._ALL_ NODS; RUN; 

 -> 전체 데이터셋 및 삭제하려는 데이터셋 목록 확인 및 정리,

      엑셀 등에 옮겨서 보면 편리함.(PROC CONTENTS관련 포스팅있음) 

 ② PROC DELETE DATA=(데이터셋); RUN;

 -> 확인한 데이터셋 삭제. 

 

명령문에 DELETE문을 사용해 작성해두면 데이터셋을 언제 삭제했는지, 왜 삭제했는지에 대한 중간과정을 확인할 수 있는것이 가장 큰 장점이다.

작업이 길어지고, 복잡해지면 보면 중간에 데이터셋 이름이 계속 바뀌고, 새로우 데이터셋을 만들게 된다. 

나중에는 최종 데이터셋만 남겨놓지만, 중간에 로직이 바뀌거나 점검을 하는 과정에서 종종 헷갈릴 때가 있기 때문에 주석 등을 활용해서 작업한 내용에 대해 정리를 해 놓는것이 편리하겠다. 

 

- 끝 -