楼主: iverjlsd
4896 4

[一般统计问题] 新手求助,如何根据条件生成变量 [推广有奖]

  • 8关注
  • 0粉丝

硕士生

13%

还不是VIP/贵宾

-

威望
0
论坛币
13 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
1775 点
帖子
104
精华
0
在线时间
169 小时
注册时间
2011-9-29
最后登录
2019-1-25

楼主
iverjlsd 发表于 2015-2-12 11:05:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如下图,我需要把从tradestart中为0的观察值到tradeend中为9999的观察值识别为一笔交易,生成一个识别码(编码规则随意,只要是唯一的就行),例如1到6行是一笔交易(生成编码1),第7行是一笔交易(编码2),第8行是一笔交易(编码3),9到10行是一笔交易(编码4)。应该如何实现?
100.jpg
二维码

扫码加我 拉你入群

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

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

关键词:生成变量 新手求助 trades Trade ESTAR 如何

沙发
625928915 学生认证  发表于 2015-2-12 11:24:32
gene new=.
replace new=1 if  tradeend==9999
sort new
gnen new =obs
你看这样行不?

藤椅
iverjlsd 发表于 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以后顺序就乱了。我把数据文件发上来,有空麻烦帮忙看下吧,非常感谢!

板凳
625928915 学生认证  发表于 2015-2-12 16:03:53
gene new=.
replace new=1 if tradeend==9999
drop  if new==.
gen  new2 = sum(new)
你看这样行不,只是这样把没有生成交易记录的个体删掉了

报纸
iverjlsd 发表于 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行是一笔交易,可以算持续时间。

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

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