-
형변환 input(), put() 여기가 마지막 검색이다. SAS정보공유 경험나눔 2023. 2. 24. 10:51
너무 간단한 형 변환 함수인데, input(), put() 헷갈리지 않나요??
저는 할 때마다 검색하는데요ㅠㅠ 오늘은 쉽게 외우는 법까지 알려드리겠습니다!! 가봅시다!!
외우는 방법 첫번째, PUT은 문자가 나옴, INPUT은 문자를 안에 넣음
1. PUT은 항상 문자로만 나옴
안에 넣을 수 있는건 문자, 숫자, 날짜 다 가능하지만 문자로만 나옴
2. INPUT은 항상 문자만 넣어야함
하지만 숫자로 변경가능한 문자인지, format 형태가 숫자로 바뀌길 원하는지에 따라 숫자가 나올 수도 있고, 문자가 나올 수도 있다.
외우는 방법 두번째
보통 문자를 숫자로, 숫자를 문자로 바꾸니까 이에 적용하면, ㅅㅅ끼리 ㄴㄴ끼리!!
예시와 설명
1. 문자형으로 바꾸기 원해!
문자 = PUT(숫자/문자/날짜, FORMAT);
CHAR = PUT(NUM, 1.)→ 한자리 수의 문자로 변환 (원하는 포맷길이가 숫자보다 더 짧을 경우 뒤에서부터 끊김, 또는 Error가 남)
(PUT(217, 2.) : 21, ** 또는 error가 남, data step에서는 뒤에서 끊거나 **로 길이만 치환, sql에서는 에러가남)
(Invalid value fro width specified - width out of range)
→ PUT(NUM, $1.) 숫자인데 $을 사용할 경우 Error가 남. $는 문자형태일 때 요구됨
(Character format $ in PUT function requires a charater argument)
→ 네자리 수의 문자로 변환 (원하는 포맷길이가 숫자보다 길 경우 앞에서부터 빈자리만큼 공백이 채워준다)
'30OCT2019' = PUT(reg_dtm, datetime9.)
→ 날짜형태도 가능! 넣으면 문자로 변환!
2. 숫자형으로 바꾸길 원해!
(숫자형으로 변환가능한 문자에 대해만 가능, 예) '1'은 숫자로 변환 가능하지만 'A' 는 바꿀 수 없음)
숫자/문자/날짜 = INPUT(문자, FORMAT);
NUM = INPUT(CHAR, 3.) → 숫자가 됨 (원하는 포맷길이가 숫자보다 더 짧을 경우 뒤에서부터 끊김,)
NUM = INPUT(CHAR, $3.) → 문자가 됨→ (원하는 포맷길이가 숫자보다 더 짧을 경우 뒤에서부터 끊김,)
→ (원하는 포맷길이가 숫자보다 더 길을 경우 뒤에서부터 빈자리만큼 공백이 채워준다)
100541 = INPUT('100,541', comma7.)
2014-10-11 = INPUT(문자, YYYYMMDD8.)조금 어려운 예시!! 이것만 이해하면 마스터!
보통 문자를 숫자로, 숫자를 문자로 바꾸지만 사실 본질은
"PUT은 항상 문자로만 나옴, INPUT은 항상 문자만 넣어야함" 이다.
그래서 문자랑 숫자가 아닌 날짜 형태를 가지고 문자랑 숫자로 바꿔보자!
또 하나의 꿀팁!
문자형 변수가 숫자형 변수에 비해 더 많은 메모리를 차지하기 때문에 어떤 형태로 저장하든 상관이 없을 경우는 숫자형변수로 저장하면 데이터의 용량을 줄일 수 있다!그리구 많은 도움을 받은 SAS 공식 블로그! 감사합니다
'정보공유 경험나눔' 카테고리의 다른 글
유튜브를 삭제했더니 (1) 2023.10.31 이공계생이 포토샵을 배워보기로 마음 먹은 이유 (1) 2023.10.04 나에게 잘 맞는 회사 찾아가는 과정 (0) 2023.07.25 속내를 알 수 없는 디지털마케팅 (0) 2023.06.19 현조직에서 느낀 디지털마케팅과 내가 나아가야할 방향 (0) 2023.02.08