全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2019 3
2009-09-24
我有一个类似的问题想请教 老师:
如果有n个数据,结构如下,现要产生一个变量R:R=v/(相邻mod(id/10)==5的v),如果相邻mod(id/10)==5(意思就是最近的id尾数是5)的v值缺失,(相邻mod(id/10)==5的v)值取最近的mod(id/10)==5的v值,mod(id/10)==5的R为  .  。比如id 是21,它的相邻逢5 id应该是25,如果id==25的v值缺失,那么相邻逢5值应该是15,如果id==15的v值也缺失,那么只有35,并且只用找到这3个中的一个就可以,别的id 不用考虑。
id     v
1      8
2      6
3      5
4      6
5      5
6      6
7      9
8      5
9      6
10    2
11    3
12    5
13    6
14    8
15    5
16    4
17    2
18    6
19    5
20    9
…    …
二维码

扫码加我 拉你入群

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

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

全部回复
2009-9-25 17:01:29
*若id尾数为5的v的观测值非零且非缺失,可采用

g s=int(id/10)
replace s=s-1 in l
g t=v if mod(id,10)==5
bys s: egen m=max(t)
sort id
g r=v/m
drop s t m
二维码

扫码加我 拉你入群

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

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

2009-9-25 17:17:18
*若id为5的v的观测值非零且非缺失,可采用

g s=int(id/10)
replace s=s-1 in l
g t=v if mod(id,10)==5

g a=sum(t)
g b=a-a[_n-1]
bys a: egen c=max(b)
replace t=c if (t==.|t==0)&mod(id,10)==5

bys s: egen m=max(t)
sort id
g r=v/m
drop s t m a b c
二维码

扫码加我 拉你入群

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

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

2009-9-25 21:37:10
谢谢sungmoo 老师:
您用形成新变量来进行分组处理,很巧妙!这是我没有想到的。谢谢
第一个方法我看懂了,第二个方法我还没有看懂,我继续的。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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