楼主: Frank233
2052 0

[实际应用] 提高SAS运行效率的小技巧 [推广有奖]

  • 3关注
  • 20粉丝

教授

43%

还不是VIP/贵宾

-

威望
1
论坛币
-203418 个
通用积分
1202.1636
学术水平
43 点
热心指数
68 点
信用等级
43 点
经验
33824 点
帖子
597
精华
0
在线时间
1278 小时
注册时间
2015-6-30
最后登录
2022-1-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
CDA就业学院:
cda.pinggu.org/jy.html


        随着大数据时代的到来,数据分析显得越来越重要,而SAS软件也逐渐被大多人开始使用,不过SAS软件不论从安装还是运行来说,都不是一件容易的事情,利用SAS处理一个大数据量的时候,总归会遇到各种的问题,使用一些小技巧可以很好的提高SAS的效率,如果你对SAS中的DATA的步的原理更了解,那理解这些技巧是很容易的:

一、过滤数据
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;


三、模糊匹配
1) is missing/is null用于检查字符变量是否为空或者数值变量是否缺失。
2)%代表0个以上的任意个数的字符。
3)_(下划线)仅代表一个任意字符。
4)contains?是否包含某个字符 x ? 'afd' 相当于 x like '

SAS数据统计分析师认证培训
二维码

扫码加我 拉你入群

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

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

关键词:小技巧 missing Contain pinggu append 小技巧 null


CDA数据分析交流群 217748971
您需要登录后才可以回帖 登录 | 我要注册

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

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

GMT+8, 2024-4-26 14:51