全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2702 10
2012-04-04
悬赏 5 个论坛币 已解决
数据结构是这样的:
household member1 age1 member2 age2......

想生成一个新变量是年龄在18-50岁之间的人的个数。

最佳答案

erinich 查看完整内容

若楼主的数据在stata中是 household member1 age1 member2 age2...... 的结构 那么 gen number=1 if age1>18 & age118 & age218 & age318 & age418 & age518 & age618 & age718 & age8
二维码

扫码加我 拉你入群

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

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

全部回复
2012-4-4 14:15:26
若楼主的数据在stata中是
household member1 age1 member2 age2......

的结构
那么

gen number=1 if  age1>18 & age1<50
replace number=number+1 if age2>18 & age2<50
replace number=number+1 if age3>18 & age3<50
replace number=number+1 if age4>18 & age4<50
replace number=number+1 if age5>18 & age5<50
replace number=number+1 if age6>18 & age6<50
replace number=number+1 if age7>18 & age7<50
replace number=number+1 if age8>18 & age8<50
.
.
.
.
以上,age 要看最长的的家庭成员有多少就写到多少
就可以得到18-50的人了,不包括18和50,要包括的话多加等号就可以了
二维码

扫码加我 拉你入群

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

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

2012-4-4 14:26:08
这个我也不懂,帮你顶一下吧
二维码

扫码加我 拉你入群

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

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

2012-4-4 14:38:14
egen number=count(member1) if age1>18 & age1<50
我感觉了一下,你尝试下。我不知count可以这样用不。。
二维码

扫码加我 拉你入群

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

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

2012-4-4 14:40:14
kuxingseng 发表于 2012-4-4 14:38
egen number=count(member1) if age1>18 & age1
为什么只有Member1,一个家庭里有好多成员,我想得到所有成员里成年人的个数
二维码

扫码加我 拉你入群

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

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

2012-4-4 15:05:28
可以通过excel计算出来
具体的:
在最大成员数的列后面的一列设为年龄  在18-50岁之间的人的个数
A              B               C               D             E            F                  G           H
家庭        成员1        年龄        成员2        年龄                年龄        
a201204        a        30        b        14        c        48        2

以上面的数据为例,第一行为列标签
在H2单元格计算

=(IF(AND(C2>18,C2<50),1,0))+(IF(AND(E2>18,E2<50),1,0))+(IF(AND(G2>18,G2<50),1,0))

以上是成员为三的例子,若成员更多,在后面继续+(IF(AND(I2>18,I2<50),1,0))+……  其中I2 等等对应的单元格为各成员年龄

stata中应该也可以通过类似的命令实现,但是对stata不是很熟悉 楼主自行考虑吧,O(∩_∩)O~


二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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