关于如何用SAS软件处理数据,小编通过边查、边学、边用,在解决困难的过程中有了一些心得,分享给大家,希望对大家用所帮助。
1、SAS是一般统计分析人员处理大数据的较好选择
在对大数据进行处理时,SPSS根本用不上,效率很低,而R软件处理数据时是先把数据读取到内存,当数据大小接近或超过内存大小时,R也无法应用。SAS是利用硬盘、运行效率较高的软件,是比较好的选择。
2、测试集应用可检验程序是否正确,少做无用功
大数据的分析花费的时间比较长,计算一个频率可能就需要花费半个小时以上,所以抽取一些case作为测试集,可检验程序准确性,提高运行效率。抽取数据的常用方法如:使用obs=option选项,proc surveyselect进行分层抽样等。使用obs=option选项比较简单,例如:
optionsobs=1000;
proc freqdata=test;
table var;
run;
optionsobs=max;
3、仅保留需要的变量,压缩变量长度
数据集中只保留需要的变量,变量太多会影响效率,对于无关的变量可以drop掉,或者keep想要的变量。在data步中在set后面的数据集进行keep、drop,效率更高。
Data a;
Set b(keep=);
Run;
变量长度会影响数据大小,可使用proc contents查看变量长度,使用input或proc sql修改变量长度。
4、先筛选,再分析,少排序
在对符合已知条件的记录进行数据处理时,要先筛选在分析。在进行条件筛选时,where的效率高于if,是因为where在读入的时候就就进行判断,而if则是等到读完的时候再进行判断。对于分组变量而言,好是用class而不用by,因为用by是得对分组变量进行排序的。
5、修改label和格式通过procdatasets
在处理数据的过程中,如果要增加或修改数据集变量的label和format格式,可以通过proc datasets过程进行修改,这样效率更快,因为他不需要记录进入pdv,因此比起data步而言更有效率。
6、使用optionscompress=yes可节省硬盘空间
对于大数据集,运行时,缓存的大小可达到原数据大小的10倍甚至更高,会导致硬盘空间不足,所以需要数据集压缩,节省空间,sas里可以通过options compress=yes来进行压缩。
7、使用sasfile data load可提高运行效率,但会占用大量内存
Sasfile dataload的应用是将数据存入内存,可以减少读取次数,提高运行效率,节省时间。但如果内存不够大,不建议使用这个操作。
通过以上的处理,可以在处理大数据的过程中节省较多的时间和硬盘空间,希望对大家处理数据有所帮助,大家有什么使用技巧,也欢迎分享。
推荐阅读