HOME> 攻略大全> SAS - 读取原始数据

SAS - 读取原始数据

2025-10-22 13:51:43

❮ 上一节

下一节 ❯

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;

当上面的代码执行时,我们得到如下输出。

❮ 上一节

下一节 ❯

王者荣耀拒收皮肤设置方法
栗子不能与哪些食物同食?营养美食专家为你解答