【问题标题】:computing the average of variables with missing values in Stata在Stata中计算具有缺失值的变量的平均值
【发布时间】:2014-12-16 11:26:04
【问题描述】:

我知道如何计算没有缺失值的变量的平均值,但我不确定用缺失值计算它。例如我们有6个区域大厅如下:

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

【问题讨论】:

  • 你是新来的,请改进你的问题,数字是什么意思?哪个数字是哪个区域的?以及您计算反对票的平均值来自我
  • 您的问题是关于缺失值的,而您在示例数据中没有显示任何值。为什么?请告诉我们你认为你知道什么;你有什么尝试?如果平均值是跨变量的(即 area1、area2 等的平均值),请参阅 help egen,使用 rowmean() 函数。
  • 感谢您的重播。我已经使用 rowmean() 函数来计算每一行的平均值,但它包含缺失值,我希望是这样的,例如:averae =(580+580+650)/3做这个过程。所以我想以简单的方式完成所有观察

标签: average stata


【解决方案1】:

报告的(或暗示的)问题毫无意义。考虑发布的数据(在第二次观察中需要一个额外的缺失值)。

. 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 检查代码。)

【讨论】:

  • 感谢 Nick 的帮助。我重复了相同的步骤,但不排除缺失值。我的意思是每一行都除以 6。它不会给我这个结果。
  • 我在您的评论或问题中没有看到可重复的示例。尝试在可能的答案中重复上面的代码。
  • 这是我的输出。它解释了计算中的缺失值。 . 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 |
  • 请编辑您的问题。上面的评论太难读了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多