BookmarkSubscribeRSS Feed

[BASE SAS기초] Subsetting Observations

Started ‎06-15-2020 by
Modified ‎06-15-2020 by
Views 135

[BASE SAS기초] Subsetting Observations

 

안녕하세요^^

오늘은 WHERE 문장을 사용해서 SUBSET을 만드는 것을 공부하겠습니다.

​이번 시간의 WHERE절은 지난시간 배운 IF 문과 매우 비슷하니, 비교해보시면서 공부하셔도 좋을 것 같습니다.

오늘 사용할 데이터 역시 지난시간에 사용한 sashelp 라이브러리에 있는 heart 데이터를 사용하겠습니다.

 

SE22015120902184770.png

 

SE22015120902185370.png

 

 

WHERE​문장은 지정된 특별한 조건에 합치하는 관측들로만 선별적으로 읽어들일 때 사용합니다.

일반적인 form은 WHERE where-expression; 입니다.

Where-expression에는 수식을 지정하는데 산술연산자와 비교연산자, 논리연산자를 사용할 수 있습니다. 또한 특수한 비교연산자 IN도 사용 가능합니다

(1) 산술연산자는 다음 다섯 가지가 있습니다.​​

 

산술연산자

기능

+

더하기

-

빼기

*

곱하기

/

나누기

**

지수

 

 

 

(2) 비교연산자에는 다음 일곱 가지가 있습니다.

비교연산자

비교 기능

기호

단축문자

=

EQ

같다(Equal to)

^=

NE

같지 않다(Not Equal to)

GT

크다(Greater Than)

LT

작다(Less Than)

>=

GE

크거나 같다(Greater than or Equal to)

<=

LE

작거나 같다(Less than or Equal to)

 

IN

어느 하나와 같다

예를들어, weight가 150 초과인 값들만 모아서 subset을 만드는 경우를 생각해 봅시다.

SE22015120902213670.png

 

SE22015120902214570.png

위와 같이 weight변수에 비교연산자 >를 이용하면 weight가 150 초과인 값들을 모아서 subset을 만드는 것을 확인할 수 있습니다.

(3) 논리 연산자에는 다음 세 가지가 있습니다.​

 

논리연산자

기능과 진리값

기호

단축문자

&

AND

좌우 수식이 둘 다 참이면 1, 아니면 0

|

OR

좌우 수식이 둘 다 거짓이면 0, 아니면 1

^

NOT

우측 수식이 참이면 0, 거짓이면 1

​​​예를들면, status가 ‘Dead’이면서 BP_status가 ‘High’인 subset을 만드는 경우를 생각해 봅시다.

 

SE22015120902224470.png

 

SE22015120902225270.png

위와 같이 논리 연산자 and를 사용하면 status가 ‘Dead’이면서 BP_status가 ‘High’인 subset을 만드는 것을 확인할 수 있습니다.

또한, 이번 시간의 WHERE절이 지난시간 배운 IF 문과 매우 비슷하다고 언급한 것을 기억하시나요?

다음의 두 문장은 같은 결과를 내는 문장입니다.

 

SE22015120902234370.pngSE22015120902235570.png

 

SE22015120902240270.png

두 문장은 같은 결과를 내지만, 두 문장은 효율성에서 차이를 나타냅니다.

IF를 사용하면 관측값들이 DATA 단계로 들어온 뒤에 조건에 맞는 관측들을 고르는 반면,

WHERE문장은 관측값들이 DATA 단계로 들어오기 전에 조건에 맞는 관측값들을 미리 고르므로 WHERE문장이 훨씬 효율적이라고 할 수 있습니다.

이상 where문장에 대해 알아보았습니다. 잘 따라오셨나요? 궁금하신 사항에 관해서는 댓글로 질문을 남겨주세요~

다음 시간에는 데이터를 병합하는 방법들에 대해 공부하도록 하겠습니다.

읽어주셔서 감사합니다^^

 

Version history
Last update:
‎06-15-2020 09:40 PM
Updated by:
Contributors

sas-innovate-white.png

Missed SAS Innovate in Orlando?

Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.

 

Register now

Article Labels
Article Tags