全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
4845 4
2015-02-12
如下图,我需要把从tradestart中为0的观察值到tradeend中为9999的观察值识别为一笔交易,生成一个识别码(编码规则随意,只要是唯一的就行),例如1到6行是一笔交易(生成编码1),第7行是一笔交易(编码2),第8行是一笔交易(编码3),9到10行是一笔交易(编码4)。应该如何实现?
100.jpg
二维码

扫码加我 拉你入群

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

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

全部回复
2015-2-12 11:24:32
gene new=.
replace new=1 if  tradeend==9999
sort new
gnen new =obs
你看这样行不?
二维码

扫码加我 拉你入群

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

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

2015-2-12 12:27:55
625928915 发表于 2015-2-12 11:24
gene new=.
replace new=1 if  tradeend==9999
sort new
sample.dta
大小:(9.27 KB)

 马上下载

还是不行,顺序是按一些规则排列的,sort new以后顺序就乱了。我把数据文件发上来,有空麻烦帮忙看下吧,非常感谢!
二维码

扫码加我 拉你入群

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

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

2015-2-12 16:03:53
gene new=.
replace new=1 if tradeend==9999
drop  if new==.
gen  new2 = sum(new)
你看这样行不,只是这样把没有生成交易记录的个体删掉了
二维码

扫码加我 拉你入群

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

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

2015-2-12 17:08:19
625928915 发表于 2015-2-12 16:03
gene new=.
replace new=1 if tradeend==9999
drop  if new==.
谢谢你的帮助!这样是可以只保留每笔交易的最后一个操作(观察值9999的行),实际和drop if tradeend!=9999效果一样。但我还需要保留其他的行,我需要拿编码为同一笔交易的操作做计算,例如1-6行是一笔交易,可以算持续时间。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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