SAS 名有两种: - 系统保留的 SAS 名;
- 用户自定义的 SAS 名。
SAS 语句中,可能出现的SAS 名有变量名、数据集名、输入及输出格式名、过程名、选项名、函数名、数组名、SAS 宏及宏变量名、SAS 目录条目名、逻辑库名、逻辑库引用名和文件引用名。 例如, - 1 /****************************\
- 2 | 10名学龄儿童的身高体重资料 |
- 3 \****************************/
- 4 OPTIONS nodate number=0;
- 5 DATA SASTJFX48_1;
- 6 INPUT name $ height weight @@;
- 7 BMI=weight/(height/100)**2;
- 8 LABLE BMI=‘body mass index’;
- 9 DATALINES; 25 ODS HTML CLOSE;
- 10 WangHB 149.4 30.8 WuCJ 167.6 46.6
- 11 ChenF 146.3 33.1 GaoSY 170.7 44.0
- 12 ZhanZL 161.5 36.3 LiYZ 164.6 40.8
- 13 ShenJJ 155.5 36.7 ZhaoJH 158.5 35.4
- 14 ZhangHX 149.4 33.1 WangXS 156.4 31.8
- 15 ;
- 16 RUN;
- 17 ODS HTML;
- 18 PROC MEANS data=SASTJFX48_1;
- 19 VAR bmi;
- 20 OUTPUT out=result mean=BMImean;
- 21 RUN;
- 22 PROC PRINT data=result (keep=BMImean);
- 23 FORMAT BMImean 4.1;
- 24 RUN;
- 25 ODS HTML CLOSE;
复制代码程序中第5 行DATA 语句后的“SASTJFX48_1”是用户自定义的数据集名,第18 行PROC 语句后的MEANS 是SAS 保留的过程名。 用户自定义的SAS 名必须符合以下规则: (1)SAS 名以字母或下划线开头,后续字符可以是字母、数字或下划线; (2)SAS 名依据其使用的场合有一定长度限制,有的部位的SAS 名至多有32 个字节长度,有的部位的SAS 名至多有8 个字节长度,具体情况见表48-1; (3)SAS 名不区分大、小写,例如BMI、Bmi、bmi 在SAS 名中都是一个词; (4)SAS 名中不能出现空格,并且SAS 名中除了字母、数字、下划线外,不能含有其他特殊字符,如#、$、@、%等特殊字符不能出现在SAS 名中; (5)SAS 保留了一些自动变量名及变量列表、SAS 数据集名和逻辑库引用名; ①SAS 运行时可能会自动生成一些变量,这些变量都是以下划线开头和结尾,称为自动变量(Automatic variables),不能用于用户自定义的变量名和变量列表。例如,自动变量_N_表示数据步已执行的次数,变量列表_NUMERIC_指所有数值型变量、_CHARACTER_指所有字符型变量、_ALL_指所有变量。 ②SASHELP、SASUSER、WORK、SASMSG 是SAS 保留的逻辑库名,用户不能以这些名字作为自定义的逻辑库名。 ③当创建SAS 数据集时,不能以_NULL_(空数据集)、_DATA_(自动数据集名)、_LAST_(新近使用的数据集名)作为名字。 (6)为外部文件规定文件引用名时不能用SASCAT。 (7)当用户建立一个宏变量时,宏变量名字不能以SYS 开头。 SAS语言元素长度限制 | SAS语言元素 | 最大长度(字节) | 数组名 | 32 | CALL程序名 | 16 | 目录条目名 | 32 | 数据步语句标签 | 32 | 数据步变量标签 | 256 | 数据步变量名 | 32 | 数据步窗体名 | 32 | 引擎名 | 8 | 文件引用名 | 8 | 输出格式名,字符型 | 31 | 输出格式名,数值型 | 32 | 函数名 | 16 | 世代数据集名(世代组群中的存档版本数据集) | 28 | 输入格式名,字符型 | 30 | 输入格式名,数值型 | 31 | 逻辑库引用名 | 8 | 宏变量名 | 32 | 宏窗体名 | 32 | 宏名字 | 32 | SAS数据逻辑库成员,除了世代数据集(数据集、视图、目录、索引) | 32 | 密码 | 8 | 过程名(前8个字符必须是唯一的,不能以SAS开头) | 16 | SCL变量名 | 32 |
|