2014-12-16 6 views
-4

Я знаю, как вычислить переменную переменных без пропущенного значения, но я не уверен в ее вычислении с отсутствующими значениями. Например, у нас есть 6 зонных залов:вычисление среднего числа переменных с отсутствующими значениями в Stata

area_hall_1 area_hall_2 area_hall_3 area_hall_4 area_hall_5 area_hall_6 
580   580   650   .   .   . 
1000  1000  .   .   .   
825   825   .   .   .   . 
912   912   .   .   .   . 
670   .   .   .   .   . 
790   .   .   .   .   . 
750   900   1000  1000  900  750 
+0

Вы новичок здесь, пожалуйста, улучшите свой вопрос, что означают цифры? какие номера для какой области? и что среднее значение для вычисления нисходящего потока было от меня. – Engine

+0

. Ваш вопрос касается отсутствующих значений, и вы не показываете их в своих данных примера. Зачем? Пожалуйста, покажите нам, что вы думаете, что знаете; что вы пытались? Если среднее по переменным (т. Е. Среднее из области 1, area2 и т. Д.), См. 'Help egen', с функцией' rowmean() '. –

+0

Спасибо за ваш повтор. Я уже использовал функцию rowmean(), чтобы вычислить среднее значение для каждой строки, но оно содержит отсутствующие значения, и я хочу быть таким, например: averae = (580 + 580 + 650)/3 требуется слишком много времени для выполните этот процесс. Поэтому я хочу сделать это простым способом для всех наблюдений. – Lanom

ответ

0

Предъявленная (или скорее подразумеваемая) проблема не имеет никакого смысла. Рассмотрите данные, полученные (во втором наблюдении необходимо дополнительное отсутствующее значение).

. clear 
. input area_hall_1 area_hall_2 area_hall_3 area_hall_4 area_hall_5 area_hall_6 

    area_ha~1 area_ha~2 area_ha~3 area_ha~4 area_ha~5 area_ha~6 
1. 580   580   650   .   .   . 
2. 1000  1000  .   .   .   . 
3. 825   825   .   .   .   . 
4. 912   912   .   .   .   . 
5. 670   .   .   .   .   . 
6. 790   .   .   .   .   . 
7. 750   900   1000  1000  900  750 
8. end 

. egen area_hall_mean = rowmean(area_hall_?) 

. egen area_hall_count = rownonmiss(area_hall_?) 

. l *_mean *_count , sep(0) 

    +---------------------+ 
    | area_h~n area_h~t | 
    |---------------------| 
    1. | 603.3333   3 | 
    2. |  1000   2 | 
    3. |  825   2 | 
    4. |  912   2 | 
    5. |  670   1 | 
    6. |  790   1 | 
    7. | 883.3333   6 | 
    +---------------------+ 

. di (580+580+650)/3 
603.33333 

egen функция rowmean() игнорирует пропущенные значения. Как это могло бы быть иначе? Единственная другая возможность - сообщить, что среднее значение не может быть рассчитано, потому что отсутствуют значения. Это оправданно, но вовсе не типичный стиль Stata. Таким образом, сообщаемые средства - это именно те, которые хочет OP. Независимый расчет с display показывает, что сообщенные средства являются желательными. (Глубокий скептик свободен для проверки кода с viewsource _growmean.ado.)

+0

Спасибо, Ник за вашу помощь. Я повторил те же шаги, но эта доза не исключает недостающих значений. Я имею в виду, что каждая строка делится на 6. Это доза не дает мне этот результат, как вы его получили. – Lanom

+0

Я не вижу воспроизводимого примера в вашем комментарии или на ваш вопрос. Попробуйте повторить вышеприведенный код, который может ответить. –

+0

Вот мой вывод. он учитывает недостающие значения в расчете. , egen area_hall_mean = rowmean (area_hall_?) . egen area_hall_count = rownonmiss (area_hall_?) . l * _mean * _count, sep (0) + --------------------- + | area_h ~ n area_h ~ t | | --------------------- | 1. | 193.3333 6 | 2. | 333.3333 6 | 3. | 275 6 | 4. | 304 6 | 5. | 111.6667 6 | 6. | 131.6667 6 | 7. | 125 6 | – Lanom

Смежные вопросы