- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SAS_IML
SAS/IML §1 简介 1.SAS/IML模块(Interactive Matrix Language) 是一种编程语言 提供矩阵操作 拥有大量运算符 有用于整个矩阵的运算符 交互的 动态的 可以访问数据:数据集、多维向量或矩阵 可以绘图 2. iml编程举例 proc iml; start approx(x); y=1; do until(w1e-3); z=y; y=0.5#(z+x/z); w=abs(y-z); end; return(y); finish approx; t=approx({3,5,7,9}); print t; quit; 3.IML过程步 格式: PROC IML SYMSIZE=n1 WORKSIZE=n2; 说明: SYMSIZE=指定为符号空间分配的内存空间大小n1 WORKSIZE=指定工作去长度 n1和n2:整数代为KB 可选项不给出,系统自动取默认值。 §2 矩阵 1.简介 矩阵是IML模块中的基本数据结构; 矩阵:一般2维,由行、列数确定,m×n; 元素类型:数值型或字符型; 元素个数:1~32767; 矩阵名 矩阵由矩阵名标识 合法的SAS标识符,最长32个字符 可包含缺失值(Missing Values) 特例: 1×n:行向量 m×1:列向量 1×1:标量 2.矩阵字面量(常量,Literals) 2.1 标量 可看作只有一个元素的矩阵; 定义形式: 矩阵名=值; 说明: 矩阵名:必须是合法标识符; 值:可以是数值型或字符型。 例: proc iml; x=12; y=12.34; z=.; a=Hello; b=Hi there; print x y z a b; 2.2 多元素矩阵 1.书写规则 用花括号({ })作定界符,把矩阵中所有元素包含进来; 元素可以是字符型或数值型,矩阵中所有元素必须类型相同; 逗号“,”用于分行; 空格用于区分一行中的相邻元素; 每行元素个数必须相同。 例1: reset print; coffee={4 2 2 3 2, 3 3 1 2 1, 2 1 0 2 1, 5 4 4 3 4}; names={Jenny,linda,Jim,Samuel}; print coffee [rowname=names]; 例2:数值矩阵 proc iml; x={1 2 3 4 5 6}; print x; y={1,2,3,4,5}; print y; z={1 2,3 4,5 6}; print z; w=3#z; print w; 例3:字符矩阵 a={abc defg}; print a; b={ABC DEFG}; print b; 例4:重复元素 answer={[2] ‘Yes’,[2] ‘No’}; answer={‘Yes’ ‘Yes’, ‘No’ ‘No’}; 例5: 再赋值 允许在任何时间对矩阵再次赋值 a={1 2 3,4 5 6}; a={‘Sales’ ‘Marketing’ ‘Administration’}; 3.赋值语句 3.1一般形式: 矩阵名=表达式; 3.2说明: 矩阵名:要创建并赋值的矩阵; 表达式:可以包含字面量、运算符、函数等; 注意:“=”两端的行列数应相等。 例6:接例1,设每杯咖啡0.3元,求每人每天所喝咖啡的钱数的矩阵;求每人每周所喝咖啡的钱数的矩阵;求每周所喝咖啡的钱数的总数和每天平均数。 reset noprint; daycost=0.30#coffee; print Daily totals,daycost[rowname=names format=8.2]; ones={1,1,1,1,1}; weektot=daycost*ones; print Week total,weektot[rowname=names format=8.2]; grandtot=sum(coffee); average=grandtot/ncol(coffee); print Total number of cups,grandtot,Daily average,average; 4.矩阵生成函数 4.1 BLOCK 形式: BLOCK(矩阵1,矩阵2,矩阵3,… …) 功能:生成由矩阵1…构成的分块矩阵 例: reset print; a={1 1,1 1}; b={2 2,2 2}; c=block(a,b); 4.2 J 形式: J(行数m
文档评论(0)