全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
20152 5
2015-11-08
在stata中生成新的变量列是常规操作。可是现在我想生成新的数据行,还请各位老师指点。数据结构如下:

123.png


这是一个关于上交所股票是否入选或者剔除180指数的数据(2表示剔除,1表示入选),样本期间是2008到2014。我想对这个新数据这样操作:
首先定义变量IND;
情况一:如果某股票在某年上半年入选180指数,我则定义08年到该年前一年IND指标为0,而该年到14年IND指标为1;如果某股票时在某年下半年入选180指数,我则定义08年到该年IND指标为0,该年下一年到14年IND指标为1。
情况二:如果某股票在数据中既有入选指数的数据又有剔除指数的数据,则基本操纵同情况一,但是IND指标为1的年份到该股票剔除180指数的年份止(如果是上半年剔除,则到前一年;如果下半年剔除,则到该年);
情况三:如果多次入选剔除,同情况一和二


说的太复杂了,其实我的意思是:如果该股票在上证180指数中,则定义IND为1,如果不在,则定义其为0。对于其有半年在指数中的情况算一年。


因为我想和其他的数据合并了操纵,但是由于这个数据不是标准的面板结构,合并不了。那就意味着我要在该数据中生成新的行,每一行有代码、年份和IND值三个变量。我应该怎么做呢?

二维码

扫码加我 拉你入群

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

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

全部回复
2015-11-9 00:50:34
没看明白你要干什么。我看你说的你好像是要生成列,但是你又说要生成行,还要merge什么的。
二维码

扫码加我 拉你入群

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

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

2015-11-9 01:04:49
夏目贵志 发表于 2015-11-9 00:50
没看明白你要干什么。我看你说的你好像是要生成列,但是你又说要生成行,还要merge什么的。
是我想复杂了。
比如600001,chg指标等于2表示他在2009年12月被剔除上证180指数。
那我就想生成600001在2008/2009年在上证指数的数据行,还要生成他在10/11、12/13/14不在指数的数据行,而他是否在指数中得用另一个变量IND来表示,ind=1表示在指数中。

这样

不知道我说清楚了没有!

你再帮我看看?
二维码

扫码加我 拉你入群

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

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

2015-11-9 04:29:43
jmjun85 发表于 2015-11-9 01:04
是我想复杂了。
比如600001,chg指标等于2表示他在2009年12月被剔除上证180指数。
那我就想生成600001在 ...
如果我没理解错的话,你需要先把数据设为一个面板,用xtset命令。然后把缺失的行填上,用tsfill命令。然后根据chg的值来设置ind的值。最后一部你先不管吧。先试着把缺失的行填上看看得到的数据是什么样的。
二维码

扫码加我 拉你入群

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

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

2015-11-9 11:40:21
夏目贵志 发表于 2015-11-9 04:29
如果我没理解错的话,你需要先把数据设为一个面板,用xtset命令。然后把缺失的行填上,用tsfill命令。然后 ...
好,我先来处理一下,看下结构。

感谢
二维码

扫码加我 拉你入群

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

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

2015-11-10 20:12:42
夏目贵志 发表于 2015-11-9 04:29
如果我没理解错的话,你需要先把数据设为一个面板,用xtset命令。然后把缺失的行填上,用tsfill命令。然后 ...
今天看了一下总共也就3000多个样本,于是就手工处理了

可是问题还是一大堆,你再帮我看看这个怎么写呢!

https://bbs.pinggu.org/forum.php? ... ;extra=#pid32597850
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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