紧急求助按钮!急。

求助!!急!_百度知道苹果/安卓/wp
积分 84, 距离下一级还需 1 积分
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡下一级可获得
权限: 自定义头衔
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
开心签到天数: 6 天连续签到: 6 天[LV.2]偶尔看看I
麻烦问一下大家,我有如下两个datasets
dataset 1 (master)
&&year& &&&cusip& && && && &&&varlist
1998& &&&1234567
1999& &1234567
1999& & 65789V4
...........
dataset2 (using)
&&year& &&&cusip& && && & beta
1998& && & 0.5
1998& &9989X34& && &1.2
1999& && & 1.3
现在需要把两个datasets合并,1是master 2是using,我尝试了以下两种方法。
1.& &&&merge 1:1 cusip year using.....
结果显示的是:variable cusip does not uniquely identify observations in the master data
2.& & merge m:m cusip year using....
虽然可以合并,但是结果不对 显示如下: matched是0
Result& && && && && && && && && &# of obs.
& & -----------------------------------------
& & not matched& && && && && && && && &76,869
& && &&&from master& && && && && && &&&30,603&&(_merge==1)
& && &&&from using& && && && && && && &46,266&&(_merge==2)
& & matched& && && && && && && && && && && &0&&(_merge==3)
& & -----------------------------------------
我自己猜想的原因是:因为我merge的key variable: cusip是strl的,不是数值型的, help merge的文件中有这么一句话:Key variables cannot be strLs.&&
这种问题请问该如何解决?可以把cusip更改成数值格式嘛?如果可以改如何改?因为有的公司的cusip里面是含有字母的。或者有没有其他的merge方法可以解决我的问题?麻烦大家帮帮忙哦,谢谢啦!
首先纠正你一个问题,"Key variables cannot be strLs" 这里的strLs是指长字符,长字符的概念是Stata 13里才出现的,你的cusip只是一般string,不是长字符,merge用一般string匹配没有问题。
其次,如果你认真读了help文档的话,有这么一句话"Use of merge m:m is not encouraged."应该说,merge m:m应该尽量避免,如果真有这种需求,最好通过joinby实现。
你做1:1匹配的时候,"variable cusip does not uniquely identify obs ...
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
首先纠正你一个问题,&Key variables cannot be strLs& 这里的strLs是指长字符,长字符的概念是Stata 13里才出现的,你的cusip只是一般string,不是长字符,merge用一般string匹配没有问题。
其次,如果你认真读了help文档的话,有这么一句话&Use of merge m:m is not encouraged.&应该说,merge m:m应该尽量避免,如果真有这种需求,最好通过joinby实现。
你做1:1匹配的时候,&variable cusip does not uniquely identify observations in the master data&说明你master的数据对于cusip year组合有重复值。另外,不知道你using数据有没有重复值,你自己要再确认一下。你可以用duplicates命令处理重复值的问题。
你需要明白你的重复值是如何产生的,是需要保存的,还是需要删除的,这个决定了你要用merge还是joinby。
另外,你查一下你的cusip,cusip在许多数据库是6位的代码,在有的数据库是8位代码,8位cusip的前6位和6位cusip是一致的。你显示的cusip有7位有8位,这里肯定有问题。
路过看看,没有找找
xingxf 发表于
首先纠正你一个问题,&Key variables cannot be strLs& 这里的strLs是指长字符,长字符的概念是Stata 13里才 ...谢谢你的回答哦。
master和using我都检查过了没有重复。例子中的cusip是我随便写的,但是这点提醒了我,我去看了下我的cusip 我的dataset1的数据是从WRDS compustat里面导出来的 cusip大多是九位的,也有一些是8位的。我帮dataset1的数据处理好后复制了cusip去WRDS CRSP输出相应的stock的信息保存在dataset2,但是我现在检查了dataset2的cusip全是8位的。好奇怪的现象啊。如果dataset1的cusip是错的话也不可能从CRSP中找到相应的信息呀。样本在3万多数据左右,dataset1和2大概差了1000多个没有找到。您知道我是哪里出错了吗?谢谢啦
xingxf 发表于
首先纠正你一个问题,&Key variables cannot be strLs& 这里的strLs是指长字符,长字符的概念是Stata 13里才 ...发现问题啦 原来要把compustat和CRSP的data进行merge需要在SAS里进行,略复杂,不能简单的在stata里用merge命里,因为两个数据库的cusip位数不同。
Edgar_liu 发表于
发现问题啦 原来要把compustat和CRSP的data进行merge需要在SAS里进行,略复杂,不能简单的在stata里用mer ...对于Compustat和CRSP的整合来说,SAS里能做的,Stata里也一样能做。Compustat里的cusip是9位的,前6位和你的cusip前6位是一致的。你在WRDS里,CRSP下面可以找到CRSP Tools - Translate to PERMCO/PERMNO,可以下载不同数据库系统间的代码对应关系。对于CUSIP,PERMNO,GVKEY之间的转换,你可以参考下面的链接,当然,你仔细阅读WRDS的帮助文档也可以找到***。
总评分:&论坛币 + 2&
学术水平 + 1&
热心指数 + 1&
信用等级 + 1&
xingxf 发表于
对于Compustat和CRSP的整合来说,SAS里能做的,Stata里也一样能做。Compustat里的cusip是9位的,前6位和你 ...谢谢啦!问题已经解决了,通过CRSP数据的PERMNO去CRSP/Compustat Merged找到LPERMNO和gvkey,然后和原来的compustat的数据merge就可以了。
再次感谢您的热心指点!
无限扩大经管职场人脉圈!每天抽选10位免费名额,现在就扫& 论坛VIP& 贵宾会员& 可免费加入
加入我们,立即就学扫码下载「就学」app& Join us!& JoinLearn&
  |
  |
  |
  |
  |
  |
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师求助!急_百度知道

参考资料

 

随机推荐