数学建模社区-数学中国

标题: [疑难解惑] 如何提高sas的data step的读取速度 [打印本页]

作者: pinky_0211    时间: 2012-1-15 13:54
标题: [疑难解惑] 如何提高sas的data step的读取速度
本人用sas进行些股票的研究。6 h7 L5 h$ u, P) W4 Y$ l3 {8 a
数据是从大智慧上拷贝的,格式如下:
; `6 n7 q" G& O+ z) m8 j7 P* l5 d8 Q6 H% {! d% k0 D) O! Q
一只股票一个txt文件,有2036只股票;每只股票记录的天数大概在1500天左右,每天有8个变量(开盘,最高,最低。。。等)
8 W! @3 k9 C. x4 t# ]
& b8 D. l# L6 x/ V( Z, d* i用sas data step 读入,并转化成sas内部的data; 例如A600000.sas7data,存放在不是work的一个逻辑区下保存。在读入txt文件的时候用的是data step方法,并用macro,一个股票一个股票的读入。这个阶段还好,实际用一个 %do i = 1 to 2036 %end,很快就可以读好。这样每个data有约1500*8 个记录,同时有2036个这样的data。
. u' A. ^( e) E  d4 {
; g2 A+ y* o" Q- h. Y# `0 j问题来了,现在我想把他们join到一个data里边,这样就可以方便的根据时间或者symbol来读取股票数值了。因为单个股票只能进行个例分析,如果想看某一个时间段的股票相对表现,个人认为这样存放data比较方便。- e5 K" m; X+ Q6 g. G
$ M7 n: \. u! U7 A! _$ F1 |/ s
但是这样的话生成的data有(1500*2036)row 8 column的dimensions,我的方法是一个一个的往一个总的data里merge或者join。但是无论用data step还是sql的方法,结果都很差,到最后就是10几秒才能merge一个股票,因为前期merge的data很大了,还要读取,用macro的loop方法每一次都要读取一个股票数据和前边merge好的data,这样的话很慢。, n' H0 ?- k1 Z" U4 Z5 h0 F, g
( h: p/ w7 I7 H- N# s+ a
对sasdata的存储大家能给点建议么?谢谢7 B' }3 p, V$ v/ Y5 \5 s" S
本文来自: **经济论坛 SAS专版 版,详细出处参考:bbs.pinggu.org/thread-1015417-1-1.html
: V7 E/ D3 q7 d' t
作者: 孤寂冷逍遥    时间: 2012-1-15 17:00

作者: lynli    时间: 2012-1-28 20:22

作者: Create_our_futu    时间: 2013-8-31 22:31
这样也可以啊
作者: 暗夜№☆修罗    时间: 2013-11-25 21:47
路过。。。
作者: 泛滥的尐青春    时间: 2013-11-27 14:17
顶一个




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5