全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1596 2
2014-04-14
悬赏 100 个论坛币 已解决
现有如下形式的数据

IDhouseholdIDmainrincome1income2income3income4
14051224021405122411000
14051224011405122401000
14051310021405131011000
14051310011405131000100
14051311021405131110010
14051311011405131100010
14051319021405131910100
14051319011405131900001
14643111011464311110100
14643111021464311100001
14031306011403130610100
14031306021403130601000
14031309011403130910010
14031309021403130900001
14031310011403131010001
14031310021403131000010
14051103011405110310100
14051103021405110301000
14051106021405110610010
14051106011405110600100
14051107021405110710001
14051107011405110700100
其中,mainr=1表示为户主,=0表示为配偶,均在同一HouseholdID下。income1-4表示是否取得四种不同类型的收入。
1表示取得,0表示未取得。
问题如下:
1写出当户主取得各项收入时配偶取得各类收入的比例,即户主取得收入1时,配偶取得取得收入1-4的比例各自为多少,需要写出具体的code,以此类推,最好能画出相应柱状图(横轴为户主的1-4中收入形式,柱图则为户主取得相应收入下配偶取得各种收入的比例),不知道能否画出。
2是关于这一类分组下数据处理的问题。比如在上表中同一家庭ID下有两个观测值的情况,我想将户主的变量信息直接赋予配偶,比如当户主income1=1时,使得配偶的income1也为1。还有,如果我想直接保存户主或者配偶中至少有1个人取得过income1的收入的那部分数据应该怎么做?如果要保存户主或配偶中个人收入较高的那个作为唯一的观测值该怎么做?(即删掉二者中个人收入较低的那个观测值,假设个人收入变量为pincome)。
问题有点多,主要是对这种结构的变量处理方式一直不懂,还望有人能耐心解答,最好还能提供相应参考资料或者相关命令供我下去研究。

最佳答案

jjjj6666 查看完整内容

not sure if all correct, * 即户主取得收入1时,配偶取得取得收入1-4的比例各自为多少 mat SP_INC=J(4,4,.) forv i=1/4 { egen x`i'=sum(mainr*income`i'), by(householdid) gen sp_income`i' = x`i'*(mainr==0) forv j=1/4 { su income`j' if x`i' == 1 & mainr == 0 mat SP_INC[`i',`j'] = r(mean) } } drop x* svmat SP_INC gen HD_INC = _n in 1/4 gr bar SP_INC*, over(HD_INC) *将户主的变 ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-4-14 02:42:11
not sure if all correct,

* 即户主取得收入1时,配偶取得取得收入1-4的比例各自为多少
mat SP_INC=J(4,4,.)
forv i=1/4 {
  egen x`i'=sum(mainr*income`i'), by(householdid)
  gen sp_income`i' = x`i'*(mainr==0)
  forv j=1/4 {
          su income`j' if x`i' == 1 & mainr == 0
          mat SP_INC[`i',`j'] = r(mean)
  }
}
drop x*
svmat SP_INC
gen HD_INC = _n in 1/4
gr bar SP_INC*, over(HD_INC)

*将户主的变量信息直接赋予配偶
forv i=1/4 {
  egen hdsp_income`i'=sum(mainr*income`i'), by(householdid)
}

*直接保存户主或者配偶中至少有1个人取得过income1的收入的那部分数据drop _all
forv i=1/4 {
  egen x`i'=sum(income`i'), by(householdid)
}
keep if x1 >0
drop x*

* 如果要保存户主或配偶中个人收入较高的那个作为唯一的观测值
egen double x = max(pincome), by(householdid)
keep if x == pincome
drop x
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-14 10:41:01
jjjj6666 发表于 2014-4-14 05:25
not sure if all correct,

* 即户主取得收入1时,配偶取得取得收入1-4的比例各自为多少
it does work,thank you!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群