지식노동자의 노트

HMS Function (시, 분, 초 값으로 부터 시간값을 구한다) 숫자를 시간으로 본문

SAS

HMS Function (시, 분, 초 값으로 부터 시간값을 구한다) 숫자를 시간으로

생각하는너구리 2012. 5. 3. 21:35
728x90

반환하는 값 : 시각

입력변수 : 시, 분, 초


SAS의 HMS 함수는 시간, 분, 초 값을 받아서 시각값을 반환하는 함수입니다. 

즉, 숫자를 조합해서 시간으로 만들어 줍니다. 

아래 예제를 통해서 살펴 보겠습니다.



/*Step1 : 예시 데이타를 입력합니다*/

data time_sample;
        input hour minute seconde;
datalines;
12 34 54
15 23 45
03 12 30
19 43 23
;
run;

/*Step2 : hhmmss 변수에 hour,minute, seconde 변수를 각각 시,분,초 값으로 하는 시각값을 넣습니다*/
data hhmmss;
        set time_sample;
        hhmmss = hms(hour, minute, seconde);
        format hhmmss time8.;
run;

proc print;
run;

<결과>
OBS hour minute seconde hhmmss
1 12 34 54 12:34:54
2 15 23 45 15:23:45
3 3 12 30 3:12:30
4 19 43 23 19:43:23

관측치 1번을 예로 들어 보겠습니다. hour변수에 들어가 있는 값은 단수히 12 라는 숫자입니다. 12시 라는 시간이 아닙니다. 마찬가지로 minute에는 34라는 숫자, seconde에는 54 라는 숫자가 들어가 있습니다. 이 셋을 단순히 더하면
12+34+54 = 100 이라는 숫자일 뿐 12시34분54초 라는 시각과는 전혀 무관합니다. 결합시킨다 하더라도 123454 라는 하나의 숫자를 나타낼 뿐 시각과는 무관합니다. HMS 함수의 각 인수자리에 들어갈때라야 각각 12시, 34분, 54초 라는 시간을 나타낼 수 있습니다.

연습문제> 위 time_sample 데이터셋 에서 09시~18시 사이에 있는 관측치만 출력해 봅시다

예시답안>
proc print;
where hhmmss between '09:00:00't and '18:00:00't;
run;

<결과>
OBS hour minute seconde hhmmss
1 12 34 54 12:34:54
2 15 23 45 15:23:45

비슷한 엑셀 함수는 TIME() 이 있습니다.

반응형
Comments