Entries Tagged 'SAS' ↓
August 8th, 2010 — SAS
1. Categorical Data Analysis Using the SAS System (2nd edition, SAS Inc., 2000)
作者三位(SDK),在这个领域都是行家,SAS公司的一位负责统计工具研发的总监Maura E. Stokes , 爱荷华大学生物统计系的教授Charles S. Davis(后来他投身工业界)以及北卡大学教堂山分校生物统计系的教授 Gary G. Koch 。用SAS做Categorical Data Analysis,这书是引用最多的一本。国内一本书,刘勤和金丕焕编的《分类数据的统计分析及SAS编程》(复旦大学出版社,2002),能看到本书的影子(美中不足的是,这本书丝毫没有提到SDK)。
我喜欢这本书,还因为它是我读过的SAS BBU(books by users)系列中排版较好的一本。BBU一般由SAS Press或Wiley两家出版社出版,一个印象是,Wiley出的SAS书排版会比SAS Press的质量高。这本书由这两家联合出版。
以前学Categorical Data Analysis,上手就是Logistic回归,做信用评分/数据挖掘需要这个(这本书的后半部分讲这些模型)。现在的工作,需要多的是本书的前半部分,对列联表做的各种检验,这是统计学里相对传统的部分,也是我这样非统计科班出身学统计学时忽略最多的部分。
还有,这本书的数序公式用得恰到好处,简洁又富有启发性,能让一个(只)有基本数学素养的SAS 程序员体会到模型的含义,又不至于淹没在数学符号的汪洋大海之中。
2.Common Statistical Methods for Clinical Research with SAS Examples(2nd edition, SAS Inc., 2002)
作者是SAS最老的一批咨询顾问Glenn A. Walker。现在这书出了第三版,加上了一位合作者,Duke Clinical Research Institute(世界上最大的学院CRO)的一位SAS程序员,Jack Shostak,他也是SAS Programming in the Pharmaceutical Industry的作者。
我没有比较与新版的区别,只说说手头的第二版。跟SDK一样,这本书是用来恶补现在所需要的统计学基础的,给回归只留了两个章节:
Chapter 1 – Introduction & Basics
Chapter 2 – Topics in Hypothesis Testing
Chapter 3 – The Data Set TRIAL
Chapter 4 – The One-Sample t-Test
Chapter 5 – The Two-Sample t-Test
Chapter 6 – One-Way ANOVA
Chapter 7 – Two-Way ANOVA
Chapter 8 – Repeated Measures Analysis
Chapter 9 – The Crossover Design
Chapter 10 – Linear Regression
Chapter 11 – Analysis of Covariance
Chapter 12 – The Wilcoxon Signed-Rank Test
Chapter 13 – The Wilcoxon Rank-Sum Test
Chapter 14 – The Kruskal-Wallis Test
Chapter 15 – The Binomial Test
Chapter 16 – The Chi-Square Test
Chapter 17 – Fisher’s Exact Test
Chapter 18 – McNemar’s Test
Chapter 19 – The Cochran-Mantel-Haenszel Test
Chapter 20 – Logistic Regression
Chapter 21 – The Log-Rank Test
Chapter 22 – The Cox Proportional Hazards Model
章节设置,跟Jerrold Zar那册有名的Biostatistical Analysis类似,正好方便SAS程序员备查。这些统计学,在药厂的clinical部门常用。至于模型味更浓的data mining系列,discovery和pharmacovigilance(PV,药物警戒)部门用得多些。
这本书在写作方面没什么特色,好处在于实用、全面,做工具书再好不过。
————————————————————-
作为非统计出身的SAS程序员,经常徜徉于data steps,现在翻翻它的统计部分,又能感受到它背后的另一片广阔天地。浏览一下SAS/STAT 9.2的研发团队,——罗列书名、人名总能激起我的斗志,噫。
May 22nd, 2010 — Computers and Internet, SAS
昨晚提到Excelpro的新书,《Excel图表之道——如何制作专业有效的商务图表》(刘万祥,北京:电子工业出版社,2010)。说些Excel,从一个SAS程序员的角度。
相对SAS,或其他的软件包(SPSS、R/S-Plus、Matlab等),Excel都是一个轻量级的分析工具。本来,Excel无意在统计分析方面跟那些统计工具包一较长短,各有适用的地方而已。但在商业世界,用Excel做分析的用户太多了,说最流行也不为过,一些统计学者,就提醒广大用户,用Excel做统计分析时一定要谨慎些,它有时候不够严谨有时候不够靠谱。详细的,可以参考谢益辉的三篇博文(以及他文中所附的参考材料):
1.Excel中的缺失值和0
2.为什么避免用Excel作统计计算
3.再谈为什么不用Excel做统计分析
用Excel本身的计算引擎有时是不够严谨,这是故事的一个方面(当然,它应付日常工作还是可以胜任的,对Excel,我们这点信心还是有)。故事的另一个方面,是鉴于Excel的广泛流行,各大BI(商务智能)套件,包括SAS系统,都要提供与Office/Excel整合的功能。上面就是 SAS Add-In for Microsoft Office在Excel里面的一个截图。利用这个Excel插件,商业用户可以继续使用他/她熟悉的Excel,访问SAS数据,并利用SAS的计算引擎来分析和作图,最后结果返回到Excel(或者Word、PPT)。一家公司不提供这玩意,它的BI技术就要受到质疑,至少也是没有做到user-friendly。夸张点说,小小的Excel就这样爬上了BI平台的最顶端。
我们注意到,与Excel的整合,重点是把它作为用户接口和展示平台。对一个传统的SAS程序员,与Excel打交道也是他职业生涯的一部分:
1. 有时候,数据会存储在Excel里面。你可能没法理解,为什么要把数据存在Excel里面,这样轻量级的数据,存在文本里面不是更好吗?在真实世界里,大部分人的行为模式一般是这样,他们打开Word来记事,打开Excel来记录数据。数据存在Excel或许也能接受,如果它们规规矩矩,行列有序。有一种情形就是,在一个Excel Book里,数据散布于各个Sheets,在同一个Sheet,数据可能不是按行列来排,而是长得就像一个report。平心而论,这样的数据真的是user-friendly,只是不够machine-friendly。在Windows平台下,SAS Base有三种最常用的方式读取Excel数据:
1-1 proc import or Import Wizard
1-2 SAS Excel Libname Engine
1-3 SAS DDE (Dynamic Data Exchange,这属于Windows的技术)
Excel不是一个跨平台的数据格式。在Unix平台下,如何读取Excel数据呢?SAS也有解决方案,那需要用到一个SAS/ACCESS Interface to PC Files for UNIX和SAS PC File Server for Windows,这也是一个Libname Engine的方式。
2. 读入Excel数据,一个相反的操作就是把SAS数据(或output)转化成Excel。程序员或许不太愿意,但这在商业世界有需求。这里SAS更是提供了五花八门的解决方案:
2-1 proc Export or Export Wizard
2-2 SAS Excel Libname Engine
2-3 SAS DDE (Dynamic Data Exchange)
2-4 proc printto
2-5 SAS ODS
2-6 data steps
2-7 SAS Add-In for Excel
……
除了DDE,你还可以利用其他非SAS技术,比如ODBC、OLE DB等。有一个小花招。利用ODS,可以把数据转化成用户可以用Excel打开的CSV、XML或者HTML格式,而它们本身是比.xls更优越的存储格式。特别是CSV(comma-separated values file),本身是文本文件,在Windows世界里,很多用户都把它当成Excel的一种格式,默认的打开方式也是Excel(而不是文本编辑器)。
罗列了这么多SAS与Excel的交互,回到Excel本身。它是一个功能强大的电子表格,在数据分析与展示方面也有不俗的表现(Excel作图,可以参考上面提到的Excelpro所达到的境界)。它赢得如此多的用户,说明它能满足大部分人大部分的需求。一个SAS用户,或者SPSS、R/S-Plus、Matlab等用户不必在统计分析方面展示对Excel的优越,这样显得就不够大气了——本来Excel就无意在这方面跟它们竞争。况且,即使工具之间有优劣,工具的本身的先后也不代表他们用户的先后,急于争辩工具厉害的人,往往忽略了人本身,自以为手持屠龙刀,就无敌于天下。笑话。
————————————————————————–
再讲个笑话,跟谢益辉有关(最近举例似乎老拿谢同学说事)。谢于数据可视化颇有研究,最近秀出了不少的工作,当然都是用R来展示。楼下便有人惊呼:R好强大啊。不知道谢听了做如何想。
April 22nd, 2010 — Computers and Internet, SAS
在“统计之都”(COS)发布了一篇《Think SAS》,是有感于R在学院(尤其是统计系)的流行,主要是写给对工业界感兴趣的在校生看,动员他们在学R之余,不妨考虑一下SAS。不想却引来长篇的R与SAS之争。关于软件的功能,比如R或SAS,本身没有任何问题:一个语言,只要能使分支语句和循环,再加上极少的要求,就可以完成几乎所有的任务了(语言的完备性,要求其实很简单)。所以讨论R与SAS谁更强大,意义不大,这更多是个人使用偏好的问题。在“统计之都”的博客文章,评论大多很精彩,有的甚至要超过正文,读者朋友不妨移步观望下。这将会是一个系列文章,陆续在COS发布,慢慢写了。
又,关于R与SAS,Peter Flom也在写系列比较文章,见
1. SAS v. R: Ease of learning
0. SAS vs. R: Introduction and request
April 8th, 2010 — SAS
上午八点半到的知春里的中科软,九点开考,九点半出来,接着赶回公司。上午就这么考了人生第一个除英语六级外的认证,SAS Certified Base Programmer for SAS 9 Credential,一共是70道题(要求时间是两个小时),错了一道,拿了99/100分回家。还好,我06年开始接触SAS,并以此为生,这个成绩不算丢脸。
为什么想到考这个证?美国那里有句话说,“如果你有个SAS认证,你将不愁找不到工作”云云。对有经验的SAS程序员,雇主一般不在乎你是否考过SAS认证,我推荐在校生没事可以整这么一个,可以增加些筹码,以示自己也算是有些投资,花过功夫。我现在不需要这个认证找工作,倒是想借这个机会,重温一些基本概念。SAS公司有一份Base的认证文档说这可以refresh your mind on some details you might have forgotter,就是这个。当然,还有一个很重要的原因,现在考证,可以找东家报销(150美元,很大的一块蚊子肉啊),——做学生时穷,虽然只要半价,还是舍不得考。
计划下半年再考一次SAS Certified Advanced Programmer for SAS 9 Credential,这个拿高分还算是有些挑战性。为考试而考试是个很无聊的事,那就借着这个机会,温习下SAS Advance的东西,这些在日常工作中都要用到,相互促进了。
其实我最想考的是SAS Certified Predictive Modeler using SAS Enterprise Miner 5 Credential,数据挖掘相关的。读书时鼓捣得比较多,现在工作几乎都要忘掉这些了,考个证可以刺激下自个。啥时有机会去美国遛达,就乘机考了这厮。SAS Base和Advance都可以在国内考,唯有这DM需要在美国的SAS公司考。
附些材料,感兴趣的朋友可以参考。
1. 报名,SAS Base和Advance都可以网上预约,或者直接到考场报名,费用是150美元(或相应的人民币)。
预约或查询考点,上www.prometric.com/sas,有国际信用卡就可以支付。
又,考试时间也是可以预定的,从早上八点开始。我订的是早九点,早八点考场工作人员可能都在调试机器,拖后些比较好。
2.参考资料。对考Base来说,SAS公司的SAS OnlineTutor®: Basic and Intermediate SAS,止矣尽矣。这是我见到过的最好的入门材料。或者,同等有分量的入门材料,SAS Programming I: Essential和SAS Programming II: Data Manipulation Techniques。这些材料,既可以为准备考试用,更可以作为入门温习提高用。从准备考试来讲,它们比SAS Little Book实用。
January 4th, 2010 — SAS, 人物, 统计备忘录, 胡说
把以前在space写的文字都导入到这个新博客里了。
这新得白花花扎眼的一年,还想多写些关于SAS程序员本身的文字,关于这个职业,它依托的行业环境等等。SAS程序员在国内还不是一个很兴盛的职业。
还会有关于SAS本身的文字,关于SAS语言,SAS公司,关于它的创始人等等。最近我对SAS的创始人Tony Barr比较感兴趣。
技术本身,这个跟饭碗相关,除了SAS技术,很多笔墨可能会停留在CDISC上面。当然还会有自个兴之所至的其他文字,才年初呢,啥都没定。作为跟“统计之都”的约定,所有跟统计相关的文字,我会首先发布到“统计之都”,然后在自个的博客做个备份:
http://cos.name/author/hujiangtang/
January 14th, 2009 — SAS
以前提到过,SAS一个员工做了一份给圣诞老人用的dashboard,在YouTube也能找到。最近Support.sas.com公布了一批Dashboard示例,比较有意思,不妨一看:
http://support.sas.com/kb/26/134.html
具体的:
Slider chart dashboard:
Bullet graph indicator:
Bullet graph dashboard:
Dial meter indicator:
Dial meter dashboard:
Bar chart indicator:
Bar chart dashboard:
Telesales dashboard:
Web marketing analysis dashboard:
January 6th, 2009 — SAS
以前贴过一份SAS9.1 Base的金融函数(23个。SAS9.1/ETS还有9个),惜乎没有展开来讲。现在SAS9.2 Base新增了一些有意思的金融函数(还有一些调整,比如,SAS9.1/ETS那9个金融函数都整合到SAS9.2 Base中去了),正好可以慢慢道来,从新增的期权定价函数开始(以前这些函数在SAS的风险管理软件Risk Dimension里面)。
SAS9.2 Base新增的这些定价函数(8个)都是计算欧式期权价格的,对看涨(call)期权、看跌期权(put)以及不同的期权类型(股票期权、期货期权、货币期权、交换期权),分别提供了以下四种模型:
Black-Scholes model,传统的股票期权定价模型,见Fischer Black and Myron Scholes (1973)
Black model,Black-Scholes model的扩展,针对期货期权,见Fischer Black(1976),所以该模型又称作Black-76
Garman-Kohlhagen model,外汇期权定价模型,见Mark Garman and Steven Kohlhagen(1983)
Margrabe model,交换期权定价模型,见William Margrabe(1978)
SAS9.2期权定价函数一览:
| Model,定价模型 |
Underlying,标的物 |
函数(Call,看涨) |
函数( Put,看跌) |
| Black model |
Futures,期货 |
BLACKCLPRC |
BLACKPTPRC |
| Black-Scholes model |
Stock,股票 |
BLKSHCLPRC |
BLKSHPTPRC |
| Garman-Kohlhagen model |
Currency,货币 |
GARKHCLPRC |
GARKHPTPRC |
| Margrabe model |
Exchange,资产交换 |
MARGRCLPRC |
MARGRPTPRC |
具体用法,见SAS9.2的在线帮助文档,Functions and CALL Routines by Category: Financial:
http://support.sas.com/documentation/cdl/en/lrdict/59540/HTML/default/a000245860.htm
推荐一个网站,可以比较各种不同的期权定价模型:http://www.montegodata.co.uk/
下期预告:一个通吃的金融函数,Finance(.)
一个孤零零的金融函数,能够做52种(是52种!)不同的金融计算,前面提到的SAS9.1/ETS那9个金融函数就是被它给硬生生消化掉了,……
del.icio.us Tags:
SAS,
Base,
ETS,
SAS9.2,
Financial Functions,
Options,
Call,
Put,
Pricing,
Black-Scholes model,
Black model,
Black-76,
Garman-Kohlhagen model,
Margrabe model,
Futures Option,
Stock Option,
Currency Option,
Exchange Option,
金融函数,
期权,
定价,
股票期权,
期货期权,
货币期权,
交换期权,
金融工程,
Risk Dimension
August 17th, 2008 — SAS
SAS的矩阵语言IML(Interactive Matrix Language)只可以处理二维表,数据类型不如R、Matlab等同类矩阵语言丰富,不过它对矩阵的表达和操纵能力一样厉害,而且与SAS程序和数据的相互访问通讯比较好,不妨一学。矩阵语言,看着也类似,下面就做个IML与R/S-Plus、SciLab/Matlab的比较(我手头只有R跟SciLab,以下的例子就用它们,这两个东西我不熟,不妨随时指正。)一句话,SAS/IML在定义矩阵时跟SciLab/Matlab差不多,在提取矩阵元素时跟R/S-Plus相近些:
1.定义矩阵
| 定义矩阵 |
SAS/IML |
R/S-Plus |
SciLab/Matlab |
| 标量 |
a={1} 或者a=1 |
a=1 |
a={1} |
|
重复a={2 2 2}
|
a={[3] 2 }
|
a=rep(2,3)
|
|
| 循环,1到100 |
a=1:100 |
|
a=1:100 |
| 循环,1到100,步长为2 |
a=do(1,100,2) |
|
a=1:2:100
|
| 1*3行向量 |
a={1 2 3} |
a=array(c(1,2,3),dim=c(1,3)) |
a=[1 2 3] |
|
3*1列向量
|
a={1,2,3}
|
a=array(c(1,2,3),dim=c(3,1))
|
a=[1;2;3] or a={1;2;3}
|
|
2*3矩阵
|
b={1 2 3, 4 5 6 }
|
a=array(c(1,2,3,4,5,6),dim=c(2,3))
|
b=[1 2 3; 4 5 6 ]
|
|
3*3单位阵
|
c=I(3)
|
|
a=eye(3,3)
|
|
2*3零矩阵
|
d=J(2,3,0)
|
|
zeros(2,3)
|
|
2*3全一矩阵
|
e=J(2,3,1) or J(2,3)
|
|
a=ones(2,3)
|
2.矩阵操纵
| 矩阵操纵 |
SAS/IML |
R/S-Plus |
SciLab/Matlab |
|
2行3列,
|
b=a[2,3]
|
b=a[2,3]
|
b=a(2,3)
|
|
所有行
|
a[2,]
|
a[2,]
|
b=a(2,:)
|
|
所有列
|
a[,3]
|
a[,3]
|
b=a(:,3)
|
|
均值
|
b=a[:]
|
|
b=a(:) 所有元素
|
| 水平叠加(列相加) |
a||b |
cbind(a,b) |
c=[a,b] |
| 垂直叠加(行相加) |
a//b |
rbind(a,b) |
|
| 取最大 |
a<>b |
pmax(a,b) |
|
| 取最小 |
a><b |
pmin(a,b) |
|
3.矩阵运算
| 矩阵运算 |
SAS/IML |
R/S-Plus |
SciLab/Matlab |
|
求逆
|
inv(a)
|
inv(a)
|
inv(a)
|
| 行列式 |
det(a) |
|
det(a) |
| 秩 |
rank(a) |
|
rank(a) |
| 迹 |
trace(a) |
|
trace(a) |
|
元素相乘
|
a#b
|
a*b
|
a.*b
|
|
元素幂
|
a##b
|
a^b
|
a.^b
|
|
幂
|
a**2=a*a
|
|
a^2=a*a
|
|
矩阵乘法
|
a*b
|
a%*%b
|
|
|
转置
|
t(a) or a`
|
t(a)
|
a’
|
|
对角阵
|
diag(a)
|
diag(a)
|
|
|
对角元素
|
vecdiag(a)
|
diag(a)
|
|
| Kronecker乘积 |
a@b |
|
kron(m1,m2) |
特征值 特征向量 |
eigval(a) eigvec(a) |
|
[eigenvector, eigenvalue]=eig(m)
matlab
|
July 8th, 2008 — SAS
可以先参考先前介绍正则表达式的元字符的那篇。
SAS对正则表达式 (Regular Expressions, RX) 的支持,表现在以下两大类函数(包括Call Routines)中:
- SAS Perl Regular Expressions (PRX),SAS9开始引进,有10个函数;
- SAS Regular Expressions (RX) ,SAS6.12就开始支持,5个函数。
这两个正则表达式系统功能类似,只是语法略有差别。它们的对应如下:
| |
SAS Perl Regular Expressions |
SAS Regular Expressions |
| 版本 |
SAS9– |
SAS6.12– |
| 函数前缀 |
PRX |
RX |
| 定义正则表达式的函数 |
PRXParse |
RXParse |
| 定位函数 |
PRXMatch |
RXMatch |
| |
Call PRXSubstr |
Call RXSubstr |
| |
Call PRXPosn |
|
| |
Call PRXNext |
|
| |
PRXParen |
|
| 文本替换函数 |
PRXChange |
|
| |
Call PRXChange |
Call RXChange |
| 释放内存函数 |
Call PRXFree |
Call RXFree |
| 代码调试函数 |
Call PRXDebug |
|
在RX系统中,比如,用$d或$D来表示数字0-9,在PRX中,用\d,\D却表示所有不是数字的字符。同时学习两套系统很容易弄混。建议只使用SAS PRX。
- PRX提供了更丰富的函数;
- PRX更为人所知;
- PRX据说更有效率。
(待续……)
May 1st, 2008 — SAS
在UltraEdit(UE)中编辑SAS代码是很方便的,尤其是同时查看很多不同的脚本时(关于在UE中实现SAS代码高亮显示,见文末)。以前有一篇《在UltraEdit中配置Java编译器》,现在说说如何在UltraEdit(UE)中配置SAS,不完全是玩具功能,偶尔有用。我的测试环境是:
UltraEdit Professional Version 14.00a+1
SAS 9.1.3 Service Pack 4
Microsoft Windows XP Professional Version 2002, Service Pack 2
Intel(R) Core(TM)2 Duo CPU, 1.95GB of RAM
1.UE->Advanced->Tool Configuration->Insert
打开UE,依上面的顺序点击工具栏,你将看到类似下面的Command、Options和Output界面,先在Command栏目,Menu Item Name一栏,写上SAS或者其他能提醒自己的词,在Working Directory一栏填上%p。困难在于Command Line一栏,下面详述之。
2.Start->All Programs->SAS->SAS 9.1(English)->Properties
Command Line一栏涉及如何激活你的SAS系统。在你的机器里,依上点“开始”->“所有程序”等,你将看到如下对窗口:
我们需要的Target(目标)一栏的字符串,我机器的SAS系统装在D盘,所以这一行是这样的:
D:\SAS9\sas.exe -CONFIG D:\SAS9\nls\1d\SASV9.CFG
把以上Target栏中的东西复制到上面提到的Command Line中,后面再加上这么些SAS系统选项(后面再解释):
-noicon -nosplash -batch -sysin %n
所以,最后Command Line一栏看上去是这样的(注意:如果你的SAS系统装在其他路径,Target项目会有所不同):
D:\SAS9\sas.exe -CONFIG D:\SAS9\nls\1d\SASV9.CFG -noicon -nosplash -batch -sysin %n
3.Options
在Options栏目里,勾上Windows Program和Save all files first。
4.Output
在Output栏目里,勾上Output to List Box、Capture Output以及Captured Output。
按OK结束。在UE->Advanced的最下面,你将看到新建成功的SAS项目。大功告成哈尔莫斯。
/*以上参考Batch Submission Using Ultraedit,里面UE和SAS的版本都很旧。*/
随便在SAS Help找一段不是特简单的代码,比如下面的,把它们复制到UE,并保存为比如ultraedit.sas,路径在,比如D:\Ultreedit-SAS\,接下来所有的结果都会保存在这个路径下,而且在UE中点File->Open,也会直接到达这个所谓当前文件夹:
data Setosa;
input SepalLength SepalWidth PetalLength PetalWidth @@;
label sepallength=’Sepal Length in mm.’
sepalwidth=’Sepal Width in mm.’
petallength=’Petal Length in mm.’
petalwidth=’Petal Width in mm.’;
datalines;
50 33 14 02 46 34 14 03 46 36 . 02
51 33 17 05 55 35 13 02 48 31 16 02
52 34 14 02 49 36 14 01 44 32 13 02
50 35 16 06 44 30 13 02 47 32 16 02
48 30 14 03 51 38 16 02 48 34 19 02
50 30 16 02 50 32 12 02 43 30 11 .
58 40 12 02 51 38 19 04 49 30 14 02
51 35 14 02 50 34 16 04 46 32 14 02
57 44 15 04 50 36 14 02 54 34 15 04
52 41 15 . 55 42 14 02 49 31 15 02
54 39 17 04 50 34 15 02 44 29 14 02
47 32 13 02 46 31 15 02 51 34 15 02
50 35 13 03 49 31 15 01 54 37 15 02
54 39 13 04 51 35 14 03 48 34 16 02
48 30 14 01 45 23 13 03 57 38 17 03
51 38 15 03 54 34 17 02 51 37 15 04
52 35 15 02 53 37 15 02
;
ods html;
ods graphics on;
title ‘Fisher (1936) Iris Setosa Data’;
proc corr data=Setosa sscp cov plots;
var sepallength sepalwidth;
with petallength petalwidth;
run;
ods graphics off;
ods html close;
就在这段代码上,点Advanced->SAS 运行,稍等你就能在D:\Ultreedit-SAS看到所有的结果:
其中,
ultraedit.sas是我们测试的代码,在UE里编辑和运行;
ultraedit.log 是这次任务的日志文件,可以用UE打开;
ultraedit.lst 是list output,可以用UE打开,依次见下:
sashtml.htm 是html output,可以用默认的浏览器打开;
RecMatrixPlot0.gif是上面程序产生的散点图图片。
————————–附录———————————
5.如果以上都没问题,那么我们就可以参详一下在以上设置中碰到的SAS系统选项:
sysin-specifies to start the SAS System and submit the file in batch mode
noicon-specifies to restore the main SAS window immediately
nosplash-specifies to not display the logo screen when the SAS System initiates
6.关于UE里SAS代码高亮显示,见http://idmcomp.com/index.php?name=Content&pa=showpage&pid=40