×

SAS 教程

SAS 概述SAS 程序结构SAS 基本语法SAS 数据集SAS 变量SAS 字符串SAS 数组SAS 数字格式SAS 运算符SAS 循环SAS 决策SAS 功能SAS Input 输入方法SAS 宏SAS Date Times 日期时间

SAS 数据集操作

SAS 写入数据集SAS 连接数据集SAS 合并数据集SAS 子集数据集SAS 数据集排序SAS 格式数据集SAS SQLSAS ODSSAS 模拟SAS 读取原始数据

SAS 数据展示

SAS 直方图SAS 条形图SAS 饼图SAS 散点图SAS 箱线图

SAS 基本统计程序

SAS 线性回归SAS Bland Altman分析SAS 卡方SAS Fisher精确测试SAS 算术平均值SAS 重复测量分析SAS 标准偏差SAS 单因素方差分析SAS 频率分布SAS 假设检验SAS 交叉表格SAS T检验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;

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


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)