全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6061 12
2016-06-23
悬赏 30 个论坛币 已解决
本人新手,现在使用sas处理沪深300指数的股票遇到了问题。我的目的是求得指数包含的所有股票每年每个月的市值,中位数及其他统计量情况。但麻烦的是沪深300包含的股票每年有好几次变动。

我已经得到了沪深300指数的变动情况,和A股所有股票的所有数据。我的想法是,先提取变动日期作为一个变量,比如叫做date,观测值为20050408,20050704。。。,然后遍历这些日期,取该区间的股票数据形成新的表。例如20050408-20050704这个区间,沪深300包含的股票数的数据做一次描述性统计;再循环至下一个区间:20050704-20060104,重新取新的股票集合的数据再做一次统计;循环下去,直到结束。

我想不通的是,我如何才能调用一个数据集里的变量的观测值作为宏变量去进行循环呢?求助,十分着急,谢谢。

最佳答案

吕小布韦 查看完整内容

不好意思, 刚看到. 要这么写: if date le date%eval(&i+1); 宏变量储存的是字符, 无法直接进行运算, %eval 是指对宏变量进行计算(如果宏变量的值是数字).
二维码

扫码加我 拉你入群

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

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

全部回复
2016-6-23 15:27:17
czd19840303 发表于 2016-6-27 15:32
那请问一下,我循环的时候,如何截取date1—date2这段时间呢?比如我用
%macro run;
%do = 1 to 5;
不好意思, 刚看到. 要这么写:

if date le date%eval(&i+1);

宏变量储存的是字符, 无法直接进行运算, %eval 是指对宏变量进行计算(如果宏变量的值是数字).
二维码

扫码加我 拉你入群

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

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

2016-6-23 16:22:18
大神们,快出来搭救我啊
二维码

扫码加我 拉你入群

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

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

2016-6-23 20:28:30
复制代码


这样不知道是否和你意, a里面是股票变动日期, 生成的宏变量分别是date1-date4
二维码

扫码加我 拉你入群

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

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

2016-6-24 11:53:21
看不到数据结构是什么样的。按照你的意思,我先假定 你的时间区间数据  有START_DATE  END_DATE字段来定义时间间隔
假定数据名分别为time_gap 和stock
复制代码

如果可以,求分
二维码

扫码加我 拉你入群

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

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

2016-6-27 15:32:31
吕小布韦 发表于 2016-6-23 20:28
这样不知道是否和你意, a里面是股票变动日期, 生成的宏变量分别是date1-date4
那请问一下,我循环的时候,如何截取date1—date2这段时间呢?比如我用
%macro run;
%do = 1 to 5;
data a;
if date le date&(i+1); --- 这种表达式不行,我希望能找到可以完成它意义的语句
if date gt date%i;
run;
%end;
%mend;
求解,谢谢你
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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