隔离独特的观察并计算Stata的平均值

时间:2015-01-10 22:57:46

标签: unique average stata

目前,我的数据集显示如下:

 mnbr      firm       contribution
 1591      2          1
 9246      6          1
 812       6          1
 674       6          1

等等。我们的想法是,mnbr是在公司工作的员工的成员数量。如果贡献是1(并且为此目的我已经全部丢掉了0),那么说员工已经为某个基金捐款了 我还使用代码簿来确定存在的唯一公司的数量。目标是确定每家公司的平均贡献数量,即公司2的贡献为1,公司6的贡献为3,依此类推。我到达的问题是访问代码簿中的唯一值编号 我在网上阅读了一些文档

inspect *varlist*
display r(N_unique)

这告诉我使用r(N_unique)会存储该值,但不幸的是这种方法对我不起作用。这是第1部分。

第2部分我还想创建一个显示每家公司贡献的变量,即

 mnbr      firm       contribution      average
 1591      2          1                 1
 9246      6          .                 2/3
 812       6          1                 2/3
 674       6          1                 2/3

表明,对于公司6,3名员工中有2名为该基金捐款 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

要回答您的评论,这对我有用:

clear
set more off 

input ///
 mnbr      firm       cont
 1591      2          1
 9246      6          .
 812       6          1
 674       6          1
 end

list

// problem 1
inspect firm
display r(N_unique)

// problem 2
bysort firm: egen totc = total(cont)
by firm: gen share = totc / _N

list

在运行另一个Stata命令之前必须使用r(N_unique),否则它可能会丢失。您也可以将结果保存到localscalar

问题2也得到解决。