SAS统计软件数据步变量与变量属性控制.ppt

SAS统计软件数据步变量与变量属性控制.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SAS统计软件数据步变量与变量属性控制

第9章 数据步变量与变量属性控制 本章内容 本章介绍利用数据步变量与信息控制语句进行数据加工整理。 数据步变量与信息控制语句规定数据集中变量个数及相关信息。变量与信息控制语句不是执行语句,可以出现数据步的任何地方,且功能相同。 ARRAY语句 ARRAY语句用于定义数组。数组通常由一组变量构成。 利用数组可以简化很多复杂的数据处理过程。 SAS系统引用数组等价引用构成数组的那一组变量。 显式下标数组语句 显式下标数组由数组名,元素个数说明,及元素列表等构成。 通过数组名引用整个数组,通过数组元素序号(也称为下标)引用该元素。 语句格式 ARRAY array-name{subscript}$length array-elements(initial-values); 选项说明: 下标的三种格式 下标用于表示数组中元素的个数和排列的范围。括号可用大括号,中括号或圆括号。 下标格式有三种: 例9.1 用格式一定义一维、二维数组。 Array simple{3} red, green, yellow; /*定义一维数组 */ 例中,数组名为simple,数组有三个元素,对应的变量命名分别为red, green, yellow. ? Array x{5,3}scorel-score15; /*定义二维数组 */ 例中,数组名为X,15个变量scorelscore15按顺序从左上角开始逐行放入这个二维数组。 ? 例9.2 用格式二定义二维数组。 Array x{1:5,1:3}scorel-score15; 当用1作为数组下界时可以省略。 注意:用0作为下界时,可以加快处理时间,因为计算下标的时间减少了。 数组元素表示方法 数组元素必须全是数值变量,或全是字符变量,可以用任意顺序列出。 ? 数组元素的两种表示方法: 列出变量名; 建立临时数组元素列表。 例9.3 列出变量名。 Array C{3} Cl-C3; Array C{3}; /*和上例句等价 */ Array A{*} _NUMERIC_ ; Array A{*} _CHARACTER_; 建立临时数组元素列表: _TEMPORARY_; 使用临时数组元素列表可以少占用内存,加快执行时间。 可以像使用DATA步中变量那样使用临时数组元素,但要注意有下面几点不同: 它们没有名字,引用时必须用数组名和下标; 不能出现在输出的数据集上; 不能用特殊下标(*)来引用所有元素; 临时数组元素的值被自动保存,而不是像DATA步中的变量,在下一次重复开始时被置为缺失值。 初始值表示方法 例9.5 数组元素和初值通过对应位置来确定。 array test (3) t1 t2 t3 (90 80 70); array ab(5) (5 4 3); 例中,第一个语句数组元素的个数与初值的个数相同,把初值90,80和70依次赋给变量t1,t1和t3。第二个语句分配5给ab1,4给ab2,3给ab3,因数组元素比给出的初始值多,多余的变量ab4和ab5为缺失值,而且SAS系统将发布一个警告信息。 应用举例 例9.6 定义数组例句。 array rain{5} x1-x5; array ab(*)x y z; array x[*]_numeric_; array test(3)_temporary_(90 80 70); array days{7} d1-d7; array x{2:5}green red denato fetzer; array test (3:4,3:7) test1-test10; 引用显式下标数组元素 凡是可用表达式的地方,都可以使用数组元素。 ? 例9.7 通过下标引用数组元素。 data new; input qa1-qa10 qb1-qb10; array test{10} qa1-qa5 qb1-qb5; put test{4}= test{6}=; cards; 1 1 1 6 1 1 1 1 1 1 8 2 2 2 2 2 2 2 2 2 ; 例中,输出qa1和qb1的值,即数组元素test(4)引用qa4, 数组元素test(6)引用qb1. 一个数组的定义仅在当前的DATA步有效。如果想在几个DATA步引用同一个数组,必须在每个DATA步中都定义这个数组。 循环DO组中引用 例9.9 规定数组的一些特殊元素作为循环DO语句范围。 array day(7) d1-d7; do i=2 to 4; do i=1 to 7 by 2; do i=1,3; 例中,处理数组DAY中选定的一些特殊元素。 例9.10 一个循环DO组里处理多个数组。 array day(*)d1-d4; do

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档