불규칙한 값들인 경우를 고려한 Loop 작업 1.

사실, 오늘 말할 것은 제목 뽑기가 가장 어려운 일이네요....그러니까 오늘 무엇을 할 것이냐하면, 예를 들어 이런 데이터와 작업이 있다고 하죠....

한국, 중국, 미국의 기업매출 자료가 각각 세개의 파일로 나뉘어 있다.
한국은 1990년 10개 기업, 91년 20개 기업, 92년 30개 기업
중국은 90년 20개 기업, 91년 14개 기업
미국은 90년 10개, 91년 8개, 92년 30개, 93년 50개 기업

이때, 각 국가 파일별로 각연도별 매출액 평균액을 계산한다고 하자..

당연히 이러한 작업은 각 연도별로 평균액을 계산하는 것은 루프문으로 작성하는 것이 효율적이다. 그러나 문제는 국가별로 시작연도는 같은데, 마지막 연도가 다르다는 점...이걸 어떻게 자동(?)으로 연동할까?

먼저, 한국파일을 열어서 아래의 실행문을 돌리면, 연도의 기초통계가 나올 것이고....
    su year
스타타는 이러한 기초통계결과를 임시로 저장한다.
무엇을 저장하는지는 return list 를 실행해 보길....

여튼 위와 같은 경우 실행한다고 가정하면,

r(max) = 1992   이라는 부분이 있다...바로 이걸 이용하면 각 국가별 파일마다 마지막연도를 특정값으로 지정하지 않고 쓸 수 있다....


    su year
    forvalues yy = 1990(1)`r(max)' {
       su  매출액변수 if year == `yy'
    }

완전 자동화하려면, 3개의 파일을 append로 합치고  각 국가별 작업도 루프로 작성하면 됨.

foreach cc in 한국 중국 미국 {
    su year if countryname == "`cc'"

    forvalues yy = 1990(1)`r(max)' {
       su  매출액변수 if year == `yy' & countryname == "`cc'"
    }

}


이러면 ~~ 끝!!  

한편, 시작연도가 다르다면, r(min)이라는 것을 함께 사용하면 됨!!


그런데, .. 연도가 순차적으로 있지 않는 경우는 어떻게 할까?  예를 들어, 어떤 국가는 2년 간격, 다른 국가는 3년 간격, 혹은 어떤 국가는 비정기적인 자료인 경우는 어떻게 할까?^^
이건 다음 번에~~~ 



댓글

이 블로그의 인기 게시물

pdf 문자 인식(OCR)

그래프 그리기 05:= EU-15 국가들의 GDP 대비 사회지출 비중과 사회지출 대비 사회보장기여금의 비중:= 4사분면 만들기

그래프 그리기 06:= 등탄력적 효용함수 그래프 그리기