楼主: gongxuche1991
1627 2

[数据管理求助] 数据管理求助 [推广有奖]

  • 4关注
  • 1粉丝

已卖:1份资源

博士生

42%

还不是VIP/贵宾

-

威望
0
论坛币
126 个
通用积分
28.1778
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
1367 点
帖子
139
精华
0
在线时间
350 小时
注册时间
2012-10-21
最后登录
2022-9-20

楼主
gongxuche1991 在职认证  发表于 2014-4-14 02:42:10 |AI写论文
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) *将户主的变 ...
关键词:数据管理 household Income House Come

沙发
jjjj6666 发表于 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

藤椅
gongxuche1991 在职认证  发表于 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!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-27 05:48