楼主: 冬日娃娃
2793 10

[其他] 菜鸟急问如何生成这样一个新变量 [推广有奖]

  • 0关注
  • 0粉丝

本科生

62%

还不是VIP/贵宾

-

威望
0
论坛币
253 个
通用积分
0.0029
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1374 点
帖子
76
精华
0
在线时间
90 小时
注册时间
2007-8-18
最后登录
2013-3-14

楼主
冬日娃娃 发表于 2012-4-4 14:15:25 |AI写论文
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
关键词:新变量 household Member House 数据结构 household 如何

沙发
erinich 发表于 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,要包括的话多加等号就可以了

藤椅
cvd5 发表于 2012-4-4 14:26:08
这个我也不懂,帮你顶一下吧
www.in106.com

板凳
kuxingseng 发表于 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,一个家庭里有好多成员,我想得到所有成员里成年人的个数

地板
erinich 发表于 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~


7
冬日娃娃 发表于 2012-4-4 15:53:04
erinich 发表于 2012-4-4 15:24
若楼主的数据在stata中是
household member1 age1 member2 age2......
非常感谢。。。
不过我刚才用EXCEL那方法算男性数目时提示出错,男性用1表示,我输入的是
=(IF(F2=1),1,0)+......

8
erinich 发表于 2012-4-4 15:55:18
冬日娃娃 发表于 2012-4-4 15:53
非常感谢。。。
不过我刚才用EXCEL那方法算男性数目时提示出错,男性用1表示,我输入的是
=(IF(F2=1),1 ...
那你看下是不是因为表示 性别的一列的的内容不是 数值类型

9
冬日娃娃 发表于 2012-4-4 15:58:51
erinich 发表于 2012-4-4 15:55
那你看下是不是因为表示 性别的一列的的内容不是 数值类型
是数值类型啊,性别都是用1或2表示的。。。。

10
冬日娃娃 发表于 2012-4-4 16:01:23
冬日娃娃 发表于 2012-4-4 15:58
是数值类型啊,性别都是用1或2表示的。。。。
明白了,一个语句的也要加AND。。。

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-3 14:43