BookmarkSubscribeRSS Feed

[SAS 프로그래밍] 레이블(label) 응용하기 1

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

[SAS 프로그래밍] 레이블(label) 응용하기 1

 

 

안녕하세요^^

 

 

지난 시간에는 데이터에 레이블(label)을 생성하는 방법에 대해 알아보겠습니다.

이번 시간에는 레이블에 포함된 유용한 정보를 이용하여 응용하는 방법들에 대해 알아보겠습니다.

 

 

 

▶ 일시적으로(temporary) 레이블 생성하기

 

레이블을 생성하는 세 가지 방법은 존재하는 레이블에 새로운 레이블을 덮어쓰기 때문에,

일시적으로 레이블을 변경하고 싶다면 DATA step이나 PROC DATASETS 프로시저에서 label 문장을 사용하지 않아야 합니다.

 

일시적으로 레이블을 만드는 방법은 프로시저 내에 레이블 문장을 삽입하여 수행할 수 있습니다.

 

▷ sashelp 라이브러리에 있는 ‘retail’ 예제를 사용하고,

▷ 변수 ‘sales’의 레이블이 ‘retail sales in millions of $’에서 ‘Sales in Millions’로 임시로 변경되도록 하겠습니다.

 

 

 

PROC MEANS 프로시저에 사용할 데이터는 sashelp 라이브러리에 있는 ‘retail’로 입력합니다.

이미 존재하는 label을 PROC CONTENTS 프로시저로 살펴보면 ‘retail sales in millions of $’로 입력된 것을 확인할 수 있습니다.

 

다운로드 (85).png

 

다운로드 (86).png

 

PROC MEANS 프로시저에 label 문장을 삽입하여 변수 ‘sales’의 레이블을 임시로 변경해보겠습니다.

label 문장은 앞선 예제들에서 본 것과 동일하게 적용합니다.

PROC MEANS의 출력결과 변수 ‘sales’의 레이블이 일시적으로 ‘Sales in Millions’로 변경된 것을 확인할 수 있습니다.

 

다운로드 (87).png

 

다운로드 (88).png

 

PROC FREQ, PROC MEANS, PROC REPORT와 같은 프로시저는 변수의 레이블이 존재하면 자동으로 사용하며, 변수와 레이블을 함께 출력합니다.

레이블을 사용하여 출력된 결과는 읽기가 더 쉬워집니다.

 

 

 

▶ 변수의 레이블을 자동으로 사용하지 않는 프로시저: PROC PRINT

 

 

PROC PRINT 프로시저는 자동으로 레이블을 사용하는 프로시저에 포함되지 않습니다.

기본적으로 PROC PRINT 프로시저는 변수의 레이블을 사용하지 않으며,

레이블이 함께 표시되기를 원한다면 레이블 옵션(label)을 사용해야 합니다.

 

다운로드 (89).png

 

다운로드 (90).png

 

 

다운로드 (91).png

 

다운로드 (92).png

 

 

▷ PROC PRINT 프로시저를 시행할 때 레이블이 분할되는 방식이 마음에 들지 않으면,

     label 옵션에서 split 옵션으로 바꿔서 사용할 수 있습니다.

 

split= 옵션은 등호 다음에 표시된 문자에서 레이블을 분리하도록 지시합니다.

일반적으로 공백이 사용되지만 아래의 예제와 같이 문자나 특수문자를 사용할 수 있습니다.

특수문자는 레이블에 출력되지 않지만, split을 선택할 때 주의를 기해야 합니다.

 

아래의 예제는 ‘*’으로 레이블을 분리하도록 코딩하였습니다.

 

 

PROC PRINT 문장에서 label 문장을 사용하여 레이블을 지정하였고, ‘Retail sales’를 작성하고, 분리하여 ‘in Millions of $’를 작성하도록 하였습니다.

 

PROC PRINT 문장의 결과 의도한 대로 출력된 것을 확인할 수 있습니다.

 

다운로드 (93).png

 

다운로드 (94).png

 

 

▶ 모든 변수의 레이블 삭제하기 1

 

SAS에서 변수에 저장되어있는 레이블을 지우는 것은 다음과 같이 시행할 수 있습니다.

 

 

▷ sashelp 라이브러리의 ‘class’ 자료를 이용하여

▷ work 라이브러리에 새로운 데이터 ‘class’로 모든 변수의 레이블을 삭제해 저장하겠습니다.

 

 

가장 간단한 방법은 변수 하나하나에 빈 레이블을 지정하는 방법입니다.

 

다운로드 (95).png

 

다운로드 (96).png

 

 

▶ 모든 변수의 레이블 삭제하기 2

 

그러나 위의 예제는 모든 변수를 모르거나, 빠르게 수행할 수 없습니다.

이러한 경우 다음과 같이 코드를 작성하여 수행할 수 있습니다.

 

 

단 proc datasets 프로시저는 기존의 자료에 덮어씌우는 방법이기 때문에, work 라이브러리에 ‘class’라는 자료를 만들어서 실행해보도록 하겠습니다.

아래의 코드에서 _all_은 모든 변수를 의미하며, 그 변수의 레이블을 공백(‘ ‘)으로 지정한다는 의미입니다.

 

다운로드 (97).png

 

다운로드 (96).png

 

 

▶ 모든 변수의 레이블 삭제하기 3

 

또한 옵션(options)을 사용하여 레이블을 삭제할 수 있습니다.

 

▷ sashelp 라이브러리의 ‘class’ 자료를 이용하여

▷ work 라이브러리에 새로운 데이터 ‘class’로 모든 변수의 레이블을 삭제해 저장하겠습니다.

 

 

Options nolabel을 작성하여 아래와 같은 코드를 함께 실행하면 모든 레이블이 사라진 결과를 얻을 수 있습니다.

 

다운로드 (98).png

 

 다운로드 (96).png

 

 

이상으로 레이블을 출력결과에 이용하는 방법과 삭제하는 방법에 대해 알아보았습니다.

감사합니다^^

 

 

[출처] http://support.sas.com/resources/papers/proceedings09/067-2009.pdf

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

sas-innovate-white.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Early bird rate extended! Save $200 when you sign up by March 31.

Register now!

Article Labels
Article Tags