SASPROCTEMPLATE中表格输出相关语句详解
立即解锁
发布时间: 2025-08-30 01:12:39 阅读量: 4 订阅数: 10 AIGC 

# SAS PROC TEMPLATE 中表格输出相关语句详解
## 1. 列宽度相关属性
### 1.1 WIDTH= 属性
`WIDTH=positive - integer | variable` 用于指定列的宽度(以字符为单位)。若省略该宽度,`PROC TEMPLATE` 会使用格式宽度;若列没有关联格式,则整数列默认宽度为 8,双精度数列默认宽度为 12,字符变量列使用数据长度。此属性仅在 `LISTING` 目标中有效,且列标题的长度可能会影响列的宽度。
### 1.2 WIDTH_MAX= 属性
`WIDTH_MAX=positive - integer | variable` 指定该列允许的最大宽度。默认情况下,若标题比数据宽,`PROC TEMPLATE` 会扩展列宽,列宽可在 `WIDTH=` 和 `WIDTH_MAX=` 的值之间。其默认值为列格式的宽度,同样仅在 `LISTING` 目标中有效。
## 2. CELLSTYLE - AS 语句
### 2.1 功能概述
`CELLSTYLE - AS` 语句根据变量的值设置列中单元格的样式元素,可用于设置单个单元格的呈现特征,如前景色、字体、鼠标悬停效果等。
### 2.2 语法结构
```plaintext
CELLSTYLE expression - 1 AS <style - element - name><[style - attribute - specification(s)]>
<…, expression - n AS <style - element - name><[style - attribute - specification(s)]>>;
```
### 2.3 所需参数
- **表达式(expression)**:为列中的每个单元格计算的表达式。若表达式结果为 `TRUE`(非零值),则使用指定的样式元素显示当前单元格;若为 `FALSE`(零值),则计算语句中的下一个表达式。表达式形式为 `expression - 1 <logical - operator expression - n>`,操作数包括常量、SAS 函数和子集变量(如 `_COLUMN_`、`_DATANAME_`、`_LABEL_`、`_ROW_`、`_VAL_`),逻辑运算符可以是 `AND`、`OR NOT`、`OR` 或 `AND NOT`。
- **样式属性规范(style - attribute - specification)**:描述要设置的样式属性,一般形式为 `style - attribute - name = style - attribute - value`。若未指定要修改的样式属性,`ODS` 使用未修改的样式元素名称。
- **样式元素名称(style - element - name)**:用于显示列中数据的样式元素名称,必须是已注册到输出交付系统的样式定义的一部分。常见的样式元素有 `data`、`datafixed`、`dataempty` 等,默认值为 `data`。
### 2.4 限制条件
- 表达式中不能引用其他列的值。
- 若表达式使用列名,则该表达式仅在 `PROC TEMPLATE` 过程中有效。
### 2.5 示例
```plaintext
CELLSTYLE _VAL_ > 10 AS dataemphasis;
```
## 3. COMPUTE AS 语句
### 3.1 功能概述
`COMPUTE AS` 语句用于计算不在数据组件中的列的值,或修改数据组件中列的值。
### 3.2 语法结构
```plaintext
COMPUTE AS expression;
```
### 3.3 所需参数
表达式的形式和操作数与 `CELLSTYLE - AS` 语句中的表达式类似。若要引用另一列,使用列名;若列在数据组件中有值,可在表达式中引用该列本身;但创建不存在于数据组件中的列时,不能在表达式中引用该列。
### 3.4 示例
```plaintext
define column sqroot;
compute as sqrt(source);
header = 'Square Root';
format = 6.4;
end;
```
### 3.5 注意事项
- 若表达式使用列名,则仅在 `PROC TEMPLATE` 过程中有效。
- 可使用 `ODS VERIFY` 语句判断定义是否由 SAS 提供,若不是,运行使用该定义的 SAS 程序时会返回警告,可使用 `SOURCE` 语句查看定义并确定 `COMPUTE AS` 语句是否更改值。
## 4. DEFINE HEADER 语句
### 4.1 功能概述
`DEFINE HEADER` 语句用于在列定义中创建表头定义。
### 4.2 语法结构
```plaintext
DEFINE HEADER definition - name;
statements - and - attributes
END;
```
### 4.3 所需参数
- **定义名称(definition - name)**:指定新表头的名称,必须是单级名称。若要从其他定义引用正在创建的表头定义,需在列定义之外创建。
- **语句和属性(statements - and - attributes)**:指定用于定义列中表头的语句和表头属性。
### 4.4 表头属性
|任务|属性|有效目标|
| ---- | ---- | ---- |
|影响表头内容外观|DEF_SPLIT|所有|
| |FORCE|LISTING|
| |JUST=|除 OUTPUT 外所有|
| |MAXIMIZE|LISTING|
| |OVERLINE|LISTING|
| |PREFORMATTED|HTML、MARKUP 系列、PRINTER 系列和 RTF|
| |PRINT|所有|
| |SPACE=|LISTING|
| |SPLIT=|除 OUTPUT 外所有|
| |STYLE=|HTML、PRINTER 系列和 RTF|
| |TRUNCATE|LISTING|
| |UNDERLINE|LISTING|
| |VJUST=|HTM
0
0
复制全文
相关推荐








