多个Stata变量中所有值的平均值

多个Stata变量中所有值的平均值,stata,data-analysis,Stata,Data Analysis,我有两个变量,我想要一个汇总表,其中包含两列中所有非缺失值的平均值(单个数字)(变量记录的内容相同,但在我导入的原始数据中,它们被记录为单独的变量),而不考虑某个内容在哪一列 更具体地说,如果我有 Var1 Var2 1 . 12 5 3 2 4.5 . . 2 我想得到Var1和Var2中所有未缺失值的平均值,即(1+12+3+4.5+5+2+2)/

我有两个变量,我想要一个汇总表,其中包含两列中所有非缺失值的平均值(单个数字)(变量记录的内容相同,但在我导入的原始数据中,它们被记录为单独的变量),而不考虑某个内容在哪一列

更具体地说,如果我有

Var1          Var2
  1            .
  12           5
  3            2
  4.5          .
  .            2

我想得到Var1和Var2中所有未缺失值的平均值,即
(1+12+3+4.5+5+2+2)/7

我的一个想法是创建一个变量,比如说
Var3
,在这里我“附加”Var1和Var2,即生成一个变量

Var3 
1 
12 
3 
4.5 
. 
. 
5 
2 
. 
2
只需使用我从
summary Var3
获得的表,但似乎没有简单的方法“附加”变量。我该怎么办?

你可以这么做

. list 

     +-------------+
     | var1   var2 |
     |-------------|
  1. |    1      . |
  2. |   12      5 |
  3. |    3      2 |
  4. |  4.5      . |
  5. |    .      2 |
     +-------------+

. preserve

. stack var1 var2, into(var)
Warning:  data in memory will be lost.
         Press any key to continue, Ctrl-Break to abort.

. su var

    Variable |        Obs        Mean    Std. Dev.       Min        Max
-------------+---------------------------------------------------------
         var |          7    4.214286    3.717718          1         12

. l

     +--------------+
     | _stack   var |
     |--------------|
  1. |      1     1 |
  2. |      1    12 |
  3. |      1     3 |
  4. |      1   4.5 |
  5. |      1     . |
     |--------------|
  6. |      2     . |
  7. |      2     5 |
  8. |      2     2 |
  9. |      2     . |
 10. |      2     2 |
     +--------------+

. restore

. l

     +-------------+
     | var1   var2 |
     |-------------|
  1. |    1      . |
  2. |   12      5 |
  3. |    3      2 |
  4. |  4.5      . |
  5. |    .      2 |
     +-------------+

在不修改数据的情况下,可以使用
summary
获得两个变量的平均值

  clear
input Var1          Var2
  1            .
  12           5
  3            2
  4.5          .
  .            2
end

list
/*   +-------------+
     | Var1   Var2 |
     |-------------|
  1. |    1      . |
  2. |   12      5 |
  3. |    3      2 |
  4. |  4.5      . |
  5. |    .      2 |
     +-------------+ */

sum Var1 
local sum_v1 = r(sum)
local N_v1   = r(N)

sum Var2 
local sum_v2 = r(sum)
local N_v2   = r(N)

local average_v1_v2 = (`sum_v1' + `sum_v2') / (`N_v1' + `N_v2')

di `average_v1_v2'
*4.2142857