如图所示:比如你的数据时这样的。暂时限定为是s1-s4,四个变量,多了也一样的。
egen b=anycount(s1-s4), values(0)
egen c=rownonmiss(s1-s4)
egen d=rowtotal(s1-s4)
gen e=d/(c-b)
第一句,用egen首先生成一个数值变量,这个变量代表的是从s1-s4里面所有的等于0的值有多少个,比如code=1时,a就等于1,code=2时,a就等于0(因为code=2时,没有等于0的数)。
第二句,用egen命令在生成一个每一行里面没有缺失值的变量的个数,这里你的数据里面都没有缺失值,所以b都等于4。
第三句,在生成,每一行的总和数,但是这个总和数计算的时候是包括零的。所以算均值的时候,要把每一行等于0的数减去。
就有第四句。