SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1117|回复: 2
打印 上一主题 下一主题

[疑难解惑] 如何提高sas的data step的读取速度

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-1-15 13:41:28 | 只看该作者

[疑难解惑] 如何提高sas的data step的读取速度

本人用sas进行些股票的研究。
数据是从大智慧上拷贝的,格式如下:

一只股票一个txt文件,有2036只股票;每只股票记录的天数大概在1500天左右,每天有8个变量(开盘,最高,最低。。。等)

用sas data step 读入,并转化成sas内部的data; 例如A600000.sas7data,存放在不是work的一个逻辑区下保存。在读入txt文件的时候用的是data step方法,并用macro,一个股票一个股票的读入。这个阶段还好,实际用一个 %do i = 1 to 2036 %end,很快就可以读好。这样每个data有约1500*8 个记录,同时有2036个这样的data。

问题来了,现在我想把他们join到一个data里边,这样就可以方便的根据时间或者symbol来读取股票数值了。因为单个股票只能进行个例分析,如果想看某一个时间段的股票相对表现,个人认为这样存放data比较方便。

但是这样的话生成的data有(1500*2036)row 8 column的dimensions,我的方法是一个一个的往一个总的data里merge或者join。但是无论用data step还是sql的方法,结果都很差,到最后就是10几秒才能merge一个股票,因为前期merge的data很大了,还要读取,用macro的loop方法每一次都要读取一个股票数据和前边merge好的data,这样的话很慢。

对sasdata的存储大家能给点建议么?谢谢
<!-- m --><a class="postlink" href="http://bbs.pinggu.org/thread-1015417-1-1.html">http://bbs.pinggu.org/thread-1015417-1-1.html</a><!-- m -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2012-1-17 23:05:25 | 只看该作者

Re: [疑难解惑] 如何提高sas的data step的读取速度

try something like this:
1. read the first one;
2. define a view for the rest one by one, and then append to the first one;

use view but not dataset in the 2nd step could save one reading time for each share.  
use append is the key point here.

%macro read;

data one;
* input the first share;
run;
%do i=2 to 2036;
data a_&amp;i/view=a_&amp;i;
*input the &amp;i share here;
run;

proc appand base=one data=a_&amp;i;
run;

%end;

%mend;

%read;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2012-1-22 01:58:05 | 只看该作者

Re: [疑难解惑] 如何提高sas的data step的读取速度

Merge multi table in one step.
It should not exceed 1 minutes.
Good luck.
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-7 02:28 , Processed in 0.124511 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表