2016-08-29 2 views
0

Stata에서 데이터를 합산하려고합니다. 영국의 지방 기관 코드 (예 : E06000047)와 레벨 (MSOA)이 더 깊은 데이터 세트가 있습니다.Stata에서 관측 한 수를

MSOA code MSOA name   Local authority code Net weekly income 
E02004297 County Durham 001 E06000047    480.00 
E02004290 County Durham 002 E06000047    540.00 
E02004298 County Durham 003 E06000047    520.00 
E02004299 County Durham 004 E06000047    430.00 
E02004291 County Durham 005 E06000047    400.00 

저는 MSOA 수준의 데이터에 관심이 없으므로 데이터를 로컬 인증 수준으로 요약하고 싶습니다. 제가 실패한 곳은 문자열 데이터로 계산할 수 없다는 것입니다. 내가하고 싶은 것은 :

foreach identical "Local authority code" take the mean/median and 
store it in a var "means.local-auth" 

그래서 내가 무엇을 기대하는 것은 같은 것입니다 : 간단한 요약 이런 종류의

Local authority code means.local-auth median.local-auth 
E06000047    474.00   480.00 
E06000048    486.00   485.00 
+1

'help collapse'을 참조하십시오. 필요한 모든 것이 있어야합니다. – ander2ed

+1

여기 문자가 아니거나 글자 수가 제한적입니다. "sth"와 같은 약어는 사용하지 말고 "I"는 "i"와 같은 문구를 사용하지 마십시오. –

+0

좋은 질문은 코드에서 몇 가지 시도를 보여줍니다. http://stackoverflow.com/help/mcve를 읽어보십시오. –

답변

1

을 더 루프는 필요하지 않습니다. 다음은 by()을 사용하여 변수를 생성하는 데 사용되는 egen의 재현 가능한 예제입니다 (인수는 숫자 또는 문자열 일 수 있으며 실제로는 단일 변수 일 필요가 없습니다). tabdisp은 간단한 표의 작성에 편리 할 수 ​​있습니다. 당신의 목표는 닉의 같은 보고서를 생산하기 위해, 또는 지방 자치 단체 수준에서 분석을 향한 첫 걸음을하는 경우가 여기에, 귀하의 질문에서 명확하지 때문에

sysuse auto, clear 
egen mean_mpg = mean(mpg), by(rep78) 
egen median_mpg = median(mpg), by(rep78) 

tabdisp rep78, c(mean_mpg median_mpg) 

---------------------------------- 
Repair | 
Record | 
1978  | mean_mpg median_mpg 
----------+----------------------- 
     1 |   21   21 
     2 |  19.125   18 
     3 | 19.43333   19 
     4 | 21.66667  22.5 
     5 | 27.36364   30 
     . |  21.4   22 
---------------------------------- 

tabdisp rep78, c(mean_mpg median_mpg) format(%2.1f) 

---------------------------------- 
Repair | 
Record | 
1978  | mean_mpg median_mpg 
----------+----------------------- 
     1 |  21.0  21.0 
     2 |  19.1  18.0 
     3 |  19.4  19.0 
     4 |  21.7  22.5 
     5 |  27.4  30.0 
     . |  21.4  22.0 
---------------------------------- 
2

이 걸릴 collapse를 사용하는 코드의 당신의 데이터를 가져 와서 지방 당국 수준으로 줄이십시오.

. * Example generated by -dataex-. To install: ssc install dataex 
. clear 

. input str20(msoa_c msoa_n lac) float income 

      msoa_c    msoa_n   lac income 
    1. "E02004297" "County Durham 001" "E06000047" 480 
    2. "E02004290" "County Durham 002" "E06000047" 540 
    3. "E02004298" "County Durham 003" "E06000047" 520 
    4. "E02004299" "County Durham 004" "E06000047" 430 
    5. "E02004291" "County Durham 005" "E06000047" 400 
    6. end 

. format income %9.2f 

. drop msoa_c msoa_n 

. collapse (mean) mean_inc=income (median) med_inc=income, by(lac) 

. list 

    +--------------------------------+ 
    |  lac mean_inc med_inc | 
    |--------------------------------| 
    1. | E06000047  474.00 480.00 | 
    +--------------------------------+ 

. 
관련 문제