안녕하세요. sas base 질문 드립니다.
안녕하세요.
sas base 공부하던 중에 궁금한 부분이 생겨서 질문 드립니다.
1.
data ex;
infile datalines missover;
input id $ sales @;
quarter=0;
do while(sales ne .);
quarter+1;
output;
input sales @;
end;
datalines;
ID1 100 200 300 400
ID2 200 100
ID3 300 400 300 200
;
run;
이걸 돌리면 출력값이
id sales quarter
ID1 100 1
ID1 200 2
ID1 300 3
ID1 400 4
ID2 200 1
ID2 100 2
ID3 300 1
ID3 400 2
ID3 300 3
ID3 200 4
이렇게 나오는데요.
input id $ 는 제일 윗쪽에 한번만 적혀있는데..
sales 값이 200, 300 일 때에도 id=ID1으로 입력이 되어있는 이유를 잘모르겠습니다.ㅜㅜ
nput에서 @를 써서 고정을 시켰다는 것 까지는 알겠는데,
그게 어떤식으로 활용이 되고, 위 데이터 스텝이 어떤 순서로 실행이 되는건지 잘모르겠습니다.
답변부탁드립니다ㅜㅜ!!
================================================================================
ID1 100 200 300 400
ID2 200 100
ID3 300 400 300 200
다음 input 스테이트먼트까지 그 행에 고정시켜주니까 계속 읽는것입니다
두번째 input 스테이트먼트도 do 문에 묶여있여서 sales 만 읽는겁니다. 그리고 또 고정해놨으니 다시 do 문의 처음으로 돌아가고 sales 값이 없을때까지 계속하지요