SAS 程序冷知识——如何在启动sas程序时自动执行一些宏?

SAS 程序冷知识——如何在启动sas程序时自动执行一些宏?,第1张

1.将常用的宏写到***.sas文件中,并保存到合适的位置;

2.找到*:\Program Files\SAS Institute\SAS\V8\SASV8.CFG文件,打开,在最后添加如下语句:

 -autoexec '*:\***\***\***.sas'

  保存,并卜兄关闭。

 这样,在启动sas程序时,会率先执行sas文件,从而不必手工去执行所需要的宏。

1.创建sas系统的一个快捷方式,然后点击右键->属性,在“起始位置”栏的修改为:

 *:\***\***\***

2.点击“应用”即可。差亏

3.特别注意,必须将路径*:\***\***\***下要执行的sas文件重命名为autoexec.sas。这一点很关键!

1.将常用的宏写到***.sas文件中,并保存到合适的位置;

2.创建一个Txt文件,然后键入型庆袭内容:

"C:\Program Files\SAS Institute\SAS\V8\sas.exe"  -CONFIG "C:\Program Files\SAS Institute\SAS\V8\SASV8.CFG" -autoexec "*:\***\***\***\***.sas"

  即方法二"目标"栏中的内容.

3.将该txt文件的后缀名修改为bat。双击该bat文件即自动打开sas程序,并自动执行指定位置的sas文件。

番外1:快捷方式这样设置可以指定SAS左上角的名称

"C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -CONFIG "C:\Program Files\SASHome\SASFoundation\9.4\nls\zh\sasv9.cfg" -awstitle "中文SAS"

番外2:快捷方式这样设置可以指定SAS使用最大内存

"C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -CONFIG "C:\Program Files\SASHome\SASFoundation\9.4\nls\zh\sasv9.cfg" -memsize MAX

/*数据步*/

入门:a little sas book *此书不多说了,你懂的

看完之后可看:learning sas by examples:a programmer's guide

*洋洋撒撒600多页,其实里面大部分是例子,文字的介绍很简约,某人~托福未上百(囧),2-3天也可看完啦哈哈。讲的不深,但很实用,看完这本书,应该就可以算是入门啦。一般程序都能看得懂,也可以写一些程序了。

宏入门:sas macro made easy, 2rd edition

*看了第一章,讲了宏编译的原理,后面暂时还没看

宏进阶:carpenter那本书,网上没找到

SQL入门:Proc SQL by example

*又是example,我的肆档袭最爱

/*数据清洗*/

Cody's Data Cleaning Techniques Using SAS (Second Edtion)

*作者是个灰常幽默的人,总是各种强调暗示自己不是个compulsive的programmer(呵呵~)。这本书花了1天左右看完了,最赞的是里面代码可以直接copy过来用哈哈。数据清洗基本的功能都有涉及,收获挺大。

/*统计过程*/

话说曾喜欢过一只统计的妹蠢梁纸,不说了都是泪~

如果你要做统计分析的话,恭喜你,以上都不用看。引用课上某老师的话裂兄:“花99%的时间好好学统计理论,花1%的时间学软件就够了。“深以为然,sas最初是一个统计分析软件,用统计软件最关键的就是读懂输出的结果,而读懂输出结果最关键的就是把统计学学好。

入门书籍:sas入门和sas多变量统计的PPT~别拍我,真的。

sas/stat自带的help也是一个很好的教材,用的时候花点时间读读,很快就能学会。

好吧,买过一本胡良平的

《sas统计分析教程》

*一般中文书大多直接翻译了help,这本书解读软件结果的部分比较详细。

-以上这么多,欢迎喜欢sas的童鞋一起交流哈哈~

下面这段code应该可以解决你的问题

%MACRO CREATDATA

%DO I=1 %TO 10

DATA FILE&I.(drop=id)

DO ID=1 TO 5

SCORE=CEIL(100*RANUNI(&I))

output

END

RUN

pROC MEANS data=FILE&I

var score

output out=outfile&i. mean=score_mean

RUN

data _null_

set outfile&i.

call symput( compress("score_mean"||"&i."), put(score_mean, 8.) )

run

data out&i

score=&&score_mean&i

run

data newscore&i

set FILE&I. out&i.

run

%END

%mend

%CREATDATA


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12429515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存