- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 加工SAS数据集数组语句--数值型数组 可以定义二维数值型数组,只要在维数说明中指定用逗号分开的两个下标界说明,例如: array table(2,2) x11 x12 x21 x22; 说明table(1,1)为x11,table(1,2)为x12,table(2,1)为x21,table(2,2)为x22。 二维数组元素的顺序按行排列。 * 加工SAS数据集数组语句--字符型数组 定义字符型数组的语法略复杂,它需要加一个$符来说明数组元素类型为字符型,并且要说明每一元素所能存储的字符串的最大长度.说明格式如下: ARRAY 数组名(维数说明) $ 元素长度说明 数组元素名列表 (初始值表); 例如: ARRAY names(3) $ 10 child father mother; 字符型数组其它方面的用法与数值型相同。 * 加工SAS数据集数组语句--临时数组 以上介绍的格式说明的数组都是把若干个变量集合在一起使用同一个数组名称呼,每个数组元素是一个独立的变量。SAS也提供了与其它程序设计语言相同的数组,即数组元素只由数组名和序号决定,没有对应的变量名。这种数组叫做临时数组,定义格式为: ARRAY 数组名(维数说明) _TEMPORARY_ (初始值表); 可见临时数组就是在数组说明中用_TEMPORARY_代替了数组元素列表。例如: ARRAY x(3) _TEMPORARY_ (0, 0, 0); * 加工SAS数据集数组语句--临时数组 说明了一个有三个元素的临时数组x。其元素为x(1),x(2),x(3),即使变量x1,x2,x3 存在也与此数组无关。临时数组的特点是它只用于中间计算,最终不被写入数据集。 并且临时数组与其它变量不同的是,它在数据步隐含循环(后面会解释此概念)中能自动保留上一步得到的值。临时数组当然也可以有多维数组,或字符型数组。 * 加工SAS数据集数组语句--使用数组 临时数组的使用与其它程序设计语言中的数组作用相同,可以存放性质类似的数据进行处理。 SAS以变量为元素的数组可以方便变量的循环处理,比如,读入了comp1-comp10 十个计算机销售额变量,prin1-prin6六个打印机销售额变量,希望计算其总和,可以用如下的数组说明与DO循环配合进行: data sales; input comp1-comp10 prin1-prin6 ; ARRAY y(*) comp1-comp10 prin1-prin6; tot=0 ; do i=1 to DIM(y); tot + y(i); end ; cards ; ……… run; * 加工SAS数据集数组语句--使用数组 此例中数组说明用了星号说明维数,求总和时用了累加语句。 事实上,在数组说明的数组元素列表部分除了列出具体的变量名表外,还可以用特殊名字_NUMERIC_代表所有数值型变量的列表,用_CHARACTER_代表所有字符型变量的列表,用_ALL_代表所有变量的列表(用_ALL_ 时所有变量应该同为数值型或同为字符型,否则出错)。 所以上例中的数组y的说明中还可以用_NUMERIC_或_ALL_代替变量名列表。如: * 加工SAS数据集数组语句--使用数组 ARRAY y(*) _NUMERIC_; ARRAY y(*) _ALL_ ; 实际上,SAS为变量累加提供了一个专门的函数SUM(OF …),比如上面的tot变量可以用 SUM(OF comp1-comp12 prin1-prin6) 或 SUM(OF Y{*}) 计算。这个例子主要为说明如何用循环来处理多个变量。 * 加工SAS数据集本节的练习题 1.使用编程方法对class数据集进行加工: (1) 生成sex=‘f’的子集 ; (2) 生成只包含name,heifht,weight的子集(用数据集选项或SAS语句); (3) 增加新变量ratio=weight/height; (4) 用SELECT和OUTPUT语句把BCLASS数据集拆分为性别为男和女的两个数据集. * 加工SAS数据集本节的练习题 2
原创力文档


文档评论(0)