[SAS 프로그래밍] 많은 수의 변수 한번에 다루기 (2)
안녕하세요^^
지난시간에 이어,
데이터에 변수의 수가 많을 때, 변수들에 공통적인 작업을 한번에 처리할 수 있는 방법에 대해 알아보겠습니다.
첫 시간에 설명하지 못한 두 가지 예제에 대해 연습해보도록 하겠습니다.
1. 기존에 존재하던 변수와 동일한 값을 갖는 새로운 변수 만들기
2. 새로운 값(constant)을 갖는 새로운 변수 만들기
3. 변수명 한번에 바꾸기 (rename)
4. 특정 조건을 갖는 변수 한번에 삭제하기 (drop)
5. 한 데이터 셋에 Frequency table 작성하기
아래의 자료와 같이, 기존의 자료의 이름을 rename하는 방법을 알아보겠습니다.
사용한 자료는 sashelp 라이브러리에 존재하는 ‘class’ 자료입니다.
Proc sql 문장을 사용하여, 기존의 변수를 새로운 변수명으로 바꾸는 문장을 매크로 변수(rename)로 저장하여 사용하는 방법입니다.
앞선 예제들과 매우 유사한 방법을 사용합니다.
먼저 proc sql의 where절에는 기존의 자료의 위치를 나타내야 합니다.
위의 select 문장의 catt(name, ‘= new_’, name) 는 다음과 같은 문장을 작성합니다.
Name = new_name
이제 from 문장을 보면, dictionary라이브러리의 columns 자료를 의미합니다.
이 자료에는 sashelp.class 자료의 변수의 list가 name이라는 변수명으로 저장되어 있습니다.
즉, 매크로 변수 constant 에는 다음과 같은 문장이 저장됩니다.
Name = new_name
Sex = new_sex
Age = new_age
Height = new_height
Weight = new_weight]
===============================================================
===============================================================
기존에 있던 자료인 sashelp.class 자료를 가져와, &rename. 매크로를 실행시킵니다.
즉, 위의 문장은 다음과 같은 문장을 실행시키는 것과 같습니다.
이 결과, 처음에 보인 것과 같이,
기존의 자료에 존재하던 변수의 이름을 new_변수명으로 rename한 것을 볼 수 있습니다.
두 번째 예제입니다.
아래의 자료와 같이, 특정 조건을 갖는 변수를 한번에 삭제하는 방법에 대해 알아보겠습니다.
자료는 지난 시간 만들었던 class_constant 자료( 기존변수 + 변수명_1 ) 를 사용하겠습니다.
이 때, 조건은 변수명이 변수명_1로 이루어진 변수를 삭제해보도록 하겠습니다.
Proc sql 문장을 사용하여, 자료에 존재하는 변수 중 변수명이 ‘_1’로 끝나는 변수를 매크로 변수(delete)로 저장하여 사용하는 방법입니다.
앞선 예제들과 매우 유사한 방법을 사용합니다.
먼저 사용할 자료의 모든 변수는 proc contents 프로시저를 사용하여 contents 라는 자료로 저장합니다.
Proc sql은
from 문장: proc contents 프로시저를 사용하여 저장한 변수명들의 자료에서
Where 문장: 변수명(name)이 ‘_1’로 끝나는 변수들을
select 문장: where조건을 만족하는 변수명(name)을 delete라는 매크로 변수로 저장합니다.
즉, 매크로 변수 &delete.는 다음과 같은 변수의 list를 갖게됩니다.
Name_1
Sex_1
Age_1
Height_1
Weight_1
===============================================================
===============================================================
기존에 있던 자료인 sashelp.class 자료를 가져와, &drop. 매크로를 실행시킵니다.
즉, 위의 문장은 다음과 같은 문장을 실행시키는 것과 같습니다.
이 결과, 처음에 보인 것과 같이,
기존 자료에서 변수명_1의 형태로 생긴 모든 변수가 삭제(drop)된 것을 볼 수 있습니다.
이상으로 자료에서는 데이터에 변수의 수가 많을 때,
변수명을 한번에 바꾸거나 특정 조건을 갖는 변수를 한번에 삭제하는 방법에 대해 알아보았습니다.
다음 시간에는, ‘많은 수의 변수 한번에 다루기’ 세 번째 시간으로 한 데이터셋에 많은 변수의 frequency table을 저장하는 방법에 대해 알아보겠습니다.
감사합니다^^
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!