- SAS 教程
- SAS - 首页
- SAS - 概述
- SAS - 环境
- SAS - 用户界面
- SAS - 程序结构
- SAS - 基本语法
- SAS - 数据集
- SAS - 变量
- SAS - 字符串
- SAS - 数组
- SAS - 数值格式
- SAS - 运算符
- SAS - 循环
- SAS - 决策
- SAS - 函数
- SAS - 输入方法
- SAS - 宏
- SAS - 日期和时间
- SAS 数据集操作
- SAS - 读取原始数据
- SAS - 写入数据集
- SAS - 连接数据集
- SAS - 合并数据集
- SAS - 子集数据集
- SAS - 排序数据集
- SAS - 格式化数据集
- SAS - SQL
- SAS - 输出交付系统
- SAS - 模拟
- SAS 基本统计过程
- SAS - 算术平均数
- SAS - 标准差
- SAS - 频数分布
- SAS - 交叉表
- SAS - t 检验
- SAS - 相关分析
- SAS - 线性回归
- SAS - Bland-Altman 分析
- SAS - 卡方检验
- SAS - Fisher 精确检验
- SAS - 重复测量分析
- SAS - 单因素方差分析
- SAS - 假设检验
- SAS 有用资源
- SAS - 快速指南
- SAS - 有用资源
- SAS - 问答
- SAS - 讨论
SAS - 读取原始数据
SAS 可以读取来自各种来源的数据,包括许多文件格式。SAS 环境中使用的文件格式将在下面讨论。
- ASCII(文本)数据集
- 分隔数据
- Excel 数据
- 层次数据
读取 ASCII(文本)数据集
这些文件以文本格式包含数据。数据通常以空格分隔,但也可以使用 SAS 可以处理的不同类型的分隔符。让我们考虑一个包含员工数据的 ASCII 文件。我们使用 SAS 中提供的 **Infile** 语句读取此文件。
示例
在下面的示例中,我们从本地环境读取名为 **emp_data.txt** 的数据文件。
data TEMP; infile '/folders/myfolders/sasuser.v94/TutorialsPoint/emp_data.txt'; input empID empName $ Salary Dept $ DOJ date9. ; format DOJ date9.; run; PROC PRINT DATA = TEMP; RUN;
执行上述代码后,我们将获得以下输出。
读取分隔数据
这些数据文件中的列值以分隔符(如逗号或管道等)分隔。在这种情况下,我们在 **infile** 语句中使用 **dlm** 选项。
示例
在下面的示例中,我们从本地环境读取名为 emp.csv 的数据文件。
data TEMP; infile '/folders/myfolders/sasuser.v94/TutorialsPoint/emp.csv' dlm=","; input empID empName $ Salary Dept $ DOJ date9. ; format DOJ date9.; run; PROC PRINT DATA = TEMP; RUN;
执行上述代码后,我们将获得以下输出。
读取 Excel 数据
SAS 可以使用导入功能直接读取 Excel 文件。如 SAS 数据集章节所示,它可以处理各种文件类型,包括 MS Excel。假设文件 emp.xls 在 SAS 环境中本地可用。
示例
FILENAME REFFILE "/folders/myfolders/TutorialsPoint/emp.xls" TERMSTR = CR; PROC IMPORT DATAFILE = REFFILE DBMS = XLS OUT = WORK.IMPORT; GETNAMES = YES; RUN; PROC PRINT DATA = WORK.IMPORT RUN;
上述代码从 Excel 文件读取数据,并给出与上述两种文件类型相同的输出。
读取分层文件
在这些文件中,数据以分层格式存在。对于给定的观测值,在其下方会有许多详细记录。详细记录的数量可能因观测值而异。下面是分层文件的示例。
在下面的文件中,列出了每个部门下每个员工的详细信息。第一条记录是标题记录,其中提到了部门,接下来的几条以 DTLS 开头的记录是详细信息记录。
DEPT:IT DTLS:1:Rick:623 DTLS:3:Mike:611 DTLS:6:Tusar:578 DEPT:OPS DTLS:7:Pranab:632 DTLS:2:Dan:452 DEPT:HR DTLS:4:Ryan:487 DTLS:2:Siyona:452
示例
要读取分层文件,我们使用以下代码,其中我们使用 IF 子句识别标题记录,并使用 do 循环处理详细信息记录。
data employees(drop = Type); length Type $ 3 Department empID $ 3 empName $ 10 Empsal 3 ; retain Department; infile '/folders/myfolders/TutorialsPoint/empdtls.txt' dlm = ':'; input Type $ @; if Type = 'DEP' then input Department $; else do; input empID empName $ Empsal ; output; end; run; PROC PRINT DATA = employees; RUN;
执行上述代码后,我们将获得以下输出。
广告