### SAS系统数据集构建与管理——使用FSP/FSEDIT
#### 一、引言
在SAS系统中,创建和管理数据集是一项基础而重要的技能。本篇内容基于"SAS讲义 第七课建立SAS系统的数据集FSPFSEDIT.doc",详细介绍如何使用SAS/FSP软件中的`FSEDIT`过程来创建和编辑SAS数据集。相比于直观易用的SAS/ASSIST图形界面工具,`FSEDIT`提供了更多定制化的数据处理能力,适合需要更高级数据管理和编程任务的用户。
#### 二、使用`FSEDIT`过程创建新数据集
##### 2.1 程序示例
在SAS的PROGRAM EDITOR窗口中输入以下代码:
```sas
Libname study 'd:\sasdata\mydir';
Proc fsedit new=study.survey;
Run;
```
此段代码的作用是创建一个新的SAS数据集`study.survey`。其中,`Libname`语句用于定义一个名为`study`的库路径,指向本地硬盘上的指定文件夹;`Proc fsedit`则启动了`FSEDIT`过程,并通过`new=`参数指明将要创建一个新的数据集。
##### 2.2 提交运行
提交上述程序后,SAS将打开一个名为"FSEDIT new STUDY.SURVEY"的变量描述窗口,允许用户定义数据集的结构和变量属性。
#### 三、处理已有数据集
当目标数据集已经存在时,需要对原有数据集进行修改或更新,此时应调整代码如下:
```sas
Proc fsedit data=study.survey;
Run;
```
这里,`data=`参数替代了`new=`,表示将要操作的是已有的数据集`study.survey`。
#### 四、定义变量及其属性
在变量描述窗口中,用户可以定义数据集中每个变量的名称、类型、长度等属性。例如:
| 变量名 | 类型 | 长度 | 变量说明 | 输入格式 |
|--------|-------|------|------------------|---------------|
| Name | $ | 8 | 姓名 | $8. |
| Sex | $ | 2 | 性别 | $2. |
| Bdate | N | 8 | 出生年月 | MMDDYY8. |
| Age | N | 3 | 年龄 | |
| Height | N | 6 | 身高 | 6.2 |
| Weight | N | 6 | 体重 | 6.2 |
| Income | N | 8 | 年收入 | 8.2 |
| Sdate | N | 6 | 调查日期 | MMDDYY6. |
这些定义决定了数据集的结构。需要注意的是,`$`符号表示字符型变量,而`N`则代表数值型变量。此外,输入格式(Informat)用于指定数据的输入方式,有助于数据的有效读取和解析。
#### 五、输入数据
完成变量定义后,即可开始输入数据。在此过程中,需要注意以下几点:
1. **添加记录**:每次输入前,需点击工具栏上的“Add Record”按钮以创建一条新的空白记录。
2. **数据输入**:用户可通过交互式方式逐条录入数据。例如,BDATE字段输入具体的日期值(如01/01/80),由于没有定义日期的输出格式,因此在SAS内部会显示为日期存储值7305。
3. **记录管理**:输入一条记录后,确认无误后,可再次选择“Add new record”选项或点击“Add Record”按钮继续输入下一条记录。
4. **数据导航**:在输入过程中,用户可以通过命令框中的FORWARD、BACKWARD命令或使用键盘上的Page Up/Page Down键进行记录间的切换。
5. **记录操作**:标准工具条会变为行编辑工具条,提供Add Record、Copy、Delete等功能按钮,方便对记录进行各种操作。
#### 六、子集筛选
除了基本的数据输入外,`FSEDIT`还支持对数据集进行子集筛选。例如,要根据特定条件获取数据集的一个子集,可以在`FSEDIT`窗口中使用WHERE命令。这允许用户基于预定义条件快速定位到感兴趣的数据部分,从而实现高效的数据探索和分析。
#### 七、总结
通过本教程的学习,读者应能掌握使用SAS/FSP中的`FSEDIT`过程创建、编辑和管理SAS数据集的方法。相较于SAS/ASSIST的图形化界面,`FSEDIT`提供的命令行方式虽然需要一定的编程基础,但却赋予了用户更多的灵活性和控制权。熟练运用这些技术,将有助于提高数据分析工作的效率和准确性。