经管之家App
让优质教育人人可得
立即打开
全部版块
我的主页
›
论坛
›
数据科学与人工智能
›
数据分析与数据科学
›
SAS专版
如何在pc SAS中提交并行的程序?
楼主
register_me
1530
1
收藏
2012-09-07
rt,最近有以下大运算量的程序,总是感觉运算的速度太慢
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
全部回复
沙发
bakoll
2015-3-20 08:59:06
数据集较大,能尽量在DATA步做的工作,就避免在SQL里操作;另外,强制一些Proc步的结果不要输出显示;此外,值得注意的是对没有排序的较大数据集进行MERGE,会耗费大量的时间,如果两个数据集有共同的变量,不妨先排序,然后通过MATCH进行MERGE,从而提高运行速度。
利用SAS处理一个大数据量的时候,使用一些小技巧可以很好的提高SAS的效率
一、过滤数据
1)当你作数据预处理的时候,你可以会从一个很大的数据集中读入一些数,形成子集。
则这个时候使用IF的效率就不如WHERE了。为什么?因为IF的作用是把数据读入PDV后再作判断,而WHERE在数据读入PDV之前就作判断。
2)在PROC过程中的直接使用WHERE 条件来过滤数据。
3)对于从外部读入的数据,如果需要过滤,则直接在这个变量读入过程中加上相应的条件。
input x; if x>10; input y; 当X不满足条件时候,则不再读入后续数据。
二、生成数据
1)如果不要生成最终数据集,只是处理一个过程。建立多使用:data _null_;
2)合并二个数据集的时候,如果二个数据集相关,建议使用proc apend 过程;
data one;
set one two;
run;
---方法二只是读入TWO的数据并入到ONE中。
proc append base = one data = two;
run;
3)在SET 后面直接过滤不需要的变量(set test(keep=var1);) 可以避免不需要的变量进入PDV
4)建立索引。如果读入大数据量的时候,可以在读入的时候即为数据集加上索引,方便后续的高效访问(data test (index=));)
5)预编译
对于常用的生成数据过程,可以利用PGM的过程预编译好,存储起来,要使用时候,直接调用。可以节约编译器时间。
例如:
DATA one2/ pgm = progname ;
SET one;
RUN ;
DATA pgm= progname ;
RUN;
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
相关推荐
请教怎么在stata做一个运算量很大的任务
今天的考试感觉偏难啊
求64位的stata软件
急问一道求sample variance的SAS程序题
matlab程序 出现如下错误 请解答
求助门槛程序
如何跳过报错,继续执行剩下的循环任务?
关于winbugs程序的求助(菜鸟求助)
哪位大侠有状态空间模型的stata程序,(时变系数那种)
3+3=?求解
栏目导航
SAS专版
管理科学与工程
经管高考
学道会
经济社会统计专版
经济金融数学专区
热门文章
《那年2003》 第66章:时间管理大师?周旋于 ...
《信用价值论》社会再生产方程式解读 与在宏 ...
多复变函数论 作者: 萧荫堂 钟家庆 陈志华
参数估计:CDA数据分析师的核心推断工具,用 ...
通用指标与场景指标:CDA数据分析师的核心分 ...
2024年合集 ESG评级数据大全(彭博 华证 Wi ...
技术趋势2026
人工智能赋能应用实践指南
芜宣机场,增长740%!
CAS EXAM6 2023版TIA教材
推荐文章
2026JG学术冬训营:从Stata初高到Python机器 ...
【必看】【本版版规,欢迎发悬赏贴求助】
【新课】26年3月|Gemini辅助论文写作与数据 ...
关于如何利用文献的若干建议
关于学术研究和论文发表的一些建议
关于科研中如何学习基础知识的一些建议 (一 ...
一个自编的经济学建模小案例 --写给授课本科 ...
AI智能体赋能教学改革: 全国AI教育教学应用 ...
2025中国AIoT产业全景图谱报告-406页
关于文献求助的一些建议
说点什么
分享
微信
QQ空间
QQ
微博
扫码加好友,拉您进群
各岗位、行业、专业交流群