全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
46142 19
2013-06-29
大家好,我想请问一下,面部数据中,根据样本(id)和观测期(t)生成一个新变量number,其内容是每个样本的观测期个数,在stata中如何实现啊?比如,如下图,如何用stata命令生成变量number变量的内容啊?

id

t

number

1

1991

3

1

1992

3

1

1993

3

2

1991

2

2

1992

2

3

1991

1



我通过by id: count if t <. 命令只能算出各个id的观测个数,但不知道怎么将这些观测个数形成新的变量。我也尝试写了如下命令,

foreach id {

  by id: count if t <.

  egen number=r(N)

  }

但stata显示 invalid syntax,呵呵。
二维码

扫码加我 拉你入群

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

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

全部回复
2013-6-29 19:48:18
inp id t
1 1991
1 1992
1 1993
2 1991
2 1992
3 1991
end

*方法一:
bys id: g number=_N

*方法二:
duplicates t id, g(number)
replace number=number+1

*方法三:
xtset id t
tsspell, f(L.t == .)
bys id: egen number=max(_seq)

*方法四:【这个比较像楼主原本的】
bys id:egen number=count(id<.)
二维码

扫码加我 拉你入群

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

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

2013-6-30 15:28:51
方法一最简单,常用
二维码

扫码加我 拉你入群

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

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

2013-6-30 16:04:09
h3327156 发表于 2013-6-29 19:48
inp id t
1 1991
1 1992
h大哥威武,帮我解决了大问题,第一个方法和第四个简单,也容易理解,中间两个貌似有点复杂。十分感谢啊
二维码

扫码加我 拉你入群

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

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

2013-6-30 16:49:02
qiaqiao 发表于 2013-6-30 15:28
方法一最简单,常用
喔,我比较初级,连常用的都不曾知道
二维码

扫码加我 拉你入群

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

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

2014-4-11 16:55:06
h3327156 发表于 2013-6-29 19:48
inp id t
1 1991
1 1992
在输入命令之前必须写入“inp id t”吗?为什么stata显示“orgn_code already defined”。
我遇到的问题是:每户中有N个成员,我知道每个成员的年龄,怎样算出每个住户中大于18岁的有几个人,怎样像这个帖子一样生成新的变量。尝试了命令bys  orgn_code:egen number=count( age>17 ),算出的结果并不正确啊,求大侠解答啊
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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