BookmarkSubscribeRSS Feed

[SAS 프로그래밍] COALESCE 함수로 누락되지 않은 첫번째 값 찾아내기

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

안녕하세요오늘은 COALESCE함수를 사용하여 변수들 중 누락되지 않은 첫번째 값을 골라내는 방법에 대해 알아보겠습니다.

 

 

 

Data

예시로 사용할 데이터를 아래와 같이 만들어 사용하였습니다.

 

c7A2Z49y3pmofLgm7P0iTg4e7wHImVlJGuzxrFRBP5090GTed7YBw_k8UDvvH4_HbmC0ut0DtexvNwAKqD2AnK923fQNwX56hGoD.png

 

x0rvexoCMIAAAAASUVORK5CYII_.png

 

데이터는 id변수와 x1 부터 x5까지의 변수들로 구성되어 있고 id변수를 제외하고 첫번째 변수인 x1와 마지막 변수인 x5변수에 결측치가 들어 있습니다.

 

 

 

 

First non missing value

 이런 경우 다음과 같이 COALESCE함수를 사용한다면 각 개체별로 결측치가 없는 첫번째 변수의 자료값을 골라낼 수 있습니다.

 

CgEAkARQVSRNfEEBR1AAEIgmgqEia_IIAiqIGIBBJAEVF0sQXBFAUNQCBSAIoKpImviCAoqgBCEQSQFGRNPEFARRFDUAgkgCKiqS.png

 

PhKYRmJ5SQvSY8drt0S8pRDJ9JKvXm0fpWKgDVhGXRLa1n69hvEtWTHtXECdEv7f8_0loVyw15k9lN2BV3lHKdl_Y28lm5pI2kzF.png

 

SET문을 통해 새로운 변수를 생성하면서 COALESCE 함수 뒤에 괄호안의 of 뒤에 변수들을 순서대로 나열하면 새로 지정된 변수에 결측값이 없는 첫번째 변수의 자료값이 저장되는 것을 확인 할 수 있습니다.

 

 

 

COALESCE 함수는 다음과 같이 SQL문에도 사용될 수 있습니다.

 

gNNp5RunTHG1QAAAABJRU5ErkJggg__.png

 

WuUQAAAAAElFTkSuQmCC.png

 

하지만 SQL문에서는 숫자가 매겨진 변수 리스트라도 COALESCE 함수 다음의 괄호안에 전부 직접 나열해야 하는 점이 차이가 납니다.

 

 

 

 

 

Last non missing value

 만약변수들 중 역순으로 가장 처음으로 나오는 결측치가 아닌 자료값을 골라내고 싶다면 다음과 같은 방법을 사용하면 됩니다.

 

XbNnHOzdzsULCFQJzB6Ahq_EHBIwH61cQiRlL0RQDbeKk6_BgSQjQFEXHgjgGy8VZx8DQggGwOIuPBGANl4qzj5GhBANgYQceGNA.png

 

YbUwoJTJ2mObSpMBNDhgnTP8uluDDkISm7yaKzpwltaipU5_kXXhtmTM5DbkpnoMkB0oQ21dejPP0WUlIf3tFMechrydO6emdrdm.png

 

COALESCE 함수 뒤에 나열하는 변수들을 역순으로 나열하게 되면 새로운 변수에 출력되는 값들도 역순으로 나열된 변수들을 기준으로 첫번째 결측치가 아닌 자료값이 되기 때문에 원하는 결과를 얻을 수 있습니다예시에 나온 것처럼 변수들이 숫자가 매겨진 변수리스트 형식일 때만 비교적 간단하게 변수들을 나열 할 수 있습니다.

 

 

 

 

 

 

마치며

 오늘은 데이터의 변수들이 나열된 순서에서 가장 처음으로 나오는 결측치가 아닌 값을 골라내는 방법을 알아 보았습니다. COALESCE 함수를 사용하여 함수와 함께 쓰이는 괄호 안에 변수들을 순서대로 나열하면 각 개체마다 첫번째로 결측값이 아닌 자료값을 알 수 있습니다이를 응용하여 변수들을 역순으로 나열하거나 원하는 순서대로 나열한다면 상황에 따라 결측값을 제외한 첫번째 자료값을 알아 낼 수도 있습니다.

 

 

 

 

 

 

Reference

http://www.listendata.com/2016/03/sas-coalesce-function.html

 

Version history
Last update:
‎06-17-2020 10:40 PM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.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. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags