楼主: seelovesa
2363 2

[原创博文] 请教:求股票的市值比重 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

71%

还不是VIP/贵宾

-

威望
0
论坛币
74 个
通用积分
0.6000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2168 点
帖子
125
精华
0
在线时间
219 小时
注册时间
2008-3-28
最后登录
2014-5-5

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
一个数据集,里面是一个行业的股票市值;行变量:股票ID;列变量:时间; 然后想股票每日的市值比重
下面是写的程序

data i1w(drop=i pre);                           /*   i1w 是weight of share in industry i 股票在行业的市值权重 */                                                           
  set temp1.mc01;                                                                                                                           
  array i1s{44} i1s1-i1s44;                           /* 数组i1s为股票变量 */                                                                  
  array i1w i1w1-i1w44;                         /* 数组 i1w为每只股票日权重 */                                                     
  do i=1 to 44;                                                                                                                        
     pre=Sum(i1s1-i1s44);                                                                                                                     
     if pre~=. then i1w(i)=i1s(i)/pre;      /* 非缺失值时,计算日收益率i1w  */                                                      
  end;                                                                                                                                 
run;               



但是:
SAS 提醒
NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.I1W 可能不完整。该步停止时,共有 0 个观测和 132 个变量。
WARNING: 数据集 WORK.I1W 由于该步已停止,而没有被替换。



哪位大侠帮忙看看

先谢过了
二维码

扫码加我 拉你入群

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

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

关键词:Industry warning Weight array weigh industry share 程序 行业

沙发
sopching 发表于 2010-11-17 21:53:26 |只看作者 |坛友微信交流群
首先你得确定你股票的变量名是i1s 还是ils  因为1和l在编辑器里是差不多的,我刚才在我电脑上跑了下,就是这个出错了,可能你也是这个原因;
然后注意你的sum(i1s1-i1s44)这个不是表示数列和,SAS认为中间的连字符是减号,所以这个的结果是i1s1i1s44 你可以再前面加一个of 即sum(of i1s1-i1s44)
希望对你有用

使用道具

藤椅
jingju11 发表于 2010-11-18 10:06:20 |只看作者 |坛友微信交流群
1# seelovesa

从错误的提示来看,可能
1. temp1.mc01 数据不存在。但是因为提示的生成的数据有132个变量,比44+44=88多,所以这个错误不可能。
2.两个array, i1s, i1w, 的定义名称可能和mc01的变量名恰巧重合,sas不允许此类命名规则因此导致错误。所以应该核实一下。

京剧

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 17:26