BookmarkSubscribeRSS Feed

[SAS 프로그래밍] 많은 수의 변수 한번에 다루기 (1)

Started ‎06-17-2020 by
Modified ‎06-17-2020 by
Views 612

[SAS 프로그래밍] 많은 수의 변수 한번에 다루기 (1)

 

 

안녕하세요^^

이번 시간부터 SAS를 이용하여 데이터를 핸들링 하는 유용한 방법들에 대해 알아보겠습니다.

오늘 자료에서는 데이터에 변수의 수가 많을 때,

​변수들에 공통적인 작업을 한번에 처리할 수 있는 방법에 대해 알아보겠습니다.

 

 

다음과 같은 순서로 세 시간에 걸쳐 연습해보도록 하겠습니다.

1. 기존에 존재하던 변수와 동일한 값을 갖는 새로운 변수 만들기

2. 새로운 값(constant)을 갖는 새로운 변수 만들기

3. 변수명 한번에 바꾸기 (rename)

4. 특정 조건을 갖는 변수 한번에 삭제하기 (drop)

5. 한 데이터 셋에 Frequency table 작성하기

 

 

 

첫 번째 예제입니다.

아래의 자료와 같이, 같은 값을 갖는 다른 이름의 변수를 일괄적으로 생성하는 방법을 알아보겠습니다.

 

wETHonln2HPoQAAAABJRU5ErkJggg__.png

 

XtDwzxHx6twAAAAASUVORK5CYII_.png

 

 

 

 

사용한 자료는 sashelp 라이브러리에 존재하는 ‘class’ 자료입니다.

 

 

uA_HOdGOvdgAAAAASUVORK5CYII_.png

 

 

Proc sql 문장을 사용하여, 새로운 변수에 값을 대입하는 문장을 매크로 변수(dup_name)로 저장하여 사용하는 방법입니다.

 

먼저 proc sql의 where절에는 기존의 자료의 위치를 나타내야 합니다.

여기서 주의해야 할 사항은 libname과 memname에 들어가는 라이브러리 이름과 자료의 이름은 대문자로 입력해야 한다는 점입니다.

 

위의 select 문장의 catt(name, ‘_1=’, name, ‘;’) 는 다음과 같은 문장을 작성합니다.

Name_1=name;

 

이제 from 문장을 보면, dictionary라이브러리의 columns 자료를 의미합니다.

이 자료에는 sashelp.class 자료의 변수의 list가 name이라는 변수명으로 저장되어 있습니다.

즉, 매크로 변수 dup_name에는 다음과 같은 문장이 저장됩니다.

 

name_1=name;

sex_1=sex;

age_1=age;

height_1=height;

weight_1=weight;

 

===============================================================

 

AosQvbiKgMvlPyt9UKT3pvvYAAAAAElFTkSuQmCC.png

 

===============================================================

 

기존에 있던 자료인 sashelp.class 자료를 가져와, &dup_name. 매크로를 실행시킵니다.

즉, 위의 문장은 다음과 같은 문장을 실행시키는 것과 같습니다.

 

3E8DLy3821oOdk0YuAgAAAABJRU5ErkJggg__.png 

 

이 결과, 처음에 보인 것과 같이,

​기존의 자료에 새로운 변수명(기존변수_1)에 기존 변수와 동일한 값을 갖는 변수를 추가할 수 있습니다.

 

 

 

 

매크로 변수에 문장을 저장하여, 문장을 실행시키는 방법으로 많은 변수를 일괄적으로 처리할 수 있습니다.

 

 

 

 

 

두 번째 예제입니다.

아래의 자료와 같이, 0의 값(constant)을 갖는 다른 이름의 변수를 일괄적으로 생성하는 방법을 알아보겠습니다.

 

wETHonln2HPoQAAAABJRU5ErkJggg__.png

 

g7MAAAAASUVORK5CYII_.png

 

 

 

 

사용한 자료는 첫 번째 예제와 마찬가지로 sashelp 라이브러리에 존재하는 ‘class’ 자료입니다.

 

q9WAUB_RrFAAAAAASUVORK5CYII_.png

 

 

Proc sql 문장을 사용하여, 새로운 변수에 값(0)을 대입하는 문장을 매크로 변수(constant)로 저장하여 사용하는 방법입니다.

 

첫 번째 예제와 매우 유사한 방법을 사용합니다.

먼저 proc sql의 where절에는 기존의 자료의 위치를 나타내야 합니다.

 

위의 select 문장의 catt(name, ‘_1=0;’) 는 다음과 같은 문장을 작성합니다.

Name_1=0;

 

이제 from 문장을 보면, dictionary라이브러리의 columns 자료를 의미합니다.

이 자료에는 sashelp.class 자료의 변수의 list가 name이라는 변수명으로 저장되어 있습니다.

즉, 매크로 변수 constant 에는 다음과 같은 문장이 저장됩니다.

 

name_1=0;

sex_1=0;

age_1=0;

height_1=0;

weight_1=0;

 

 

===============================================================

 

fApjRBDi8dE9hgjZTRi6rNw3aWFoop_LpjDsZtLKyD3IqL84Hvo9hgg4nf4AvVFwvgMMTvcAAAAASUVORK5CYII_.png

 

=============================================================== 

 

 

기존에 있던 자료인 sashelp.class 자료를 가져와, &constant. 매크로를 실행시킵니다.

즉, 위의 문장은 다음과 같은 문장을 실행시키는 것과 같습니다.

 

0HcR2OXsOT9YcAAAAASUVORK5CYII_.png

 

이 결과, 처음에 보인 것과 같이,

​기존의 자료에 새로운 변수명(기존변수_1)에 0값을 갖는 변수를 추가할 수 있습니다.

 

 

 

 

이상으로 자료에서는 데이터에 변수의 수가 많을 때,

​변수들에 공통적인 작업을 한번에 처리할 수 있는 방법에 대해 알아보았습니다.

 

 

 

다음 시간에는, 이번 시간에 이어 변수들에 존재하는 많은 변수명을 한번에 바꾸거나, 특정 조건을 갖는 변수를 한번에 삭제하는 방법에 대해 알아보겠습니다.

감사합니다^^

Version history
Last update:
‎06-17-2020 06:03 AM
Updated by:
Contributors

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

Article Labels
Article Tags