SAS程序结构

DATA步-PROC步-OUTPUT步

DATA步:此步骤涉及将所需数据集加载到SAS存储器中并识别数据集的变量(也称为列)。 它还捕获记录(也称为观察或主体)。

DATA; 数据集的创建
INFILE ‘文件路径’
INPUT; 定义变量
CARDS;
;
RUN;
. 表示数据缺失
过程步
proc ;
run;

SAS 概述

SAS常用组件
Base 核心模块
Graph 图表
Stat 统计分析:方差分析、回归、多变量分析、生存分析、心理分析
Or 行动调查
Ets 计量经济学和时间序列分析
IML CInteractive 矩阵语言
AF 应用设施
QC 质量控制
INSIGHT 数据挖掘
PH 临床试验分析
Enterprise Miner 数据挖掘

SAS的窗口

  1. 日志窗口:执行窗口,可以检查SAS程序的执行
  2. 编辑器窗口:写所有代码,像记事本,默认提交后清除文本,可在工具-选项-编辑器中调整
  3. 输出窗口:可以看到程序的输出
  4. 结果窗口:
  5. 资源管理器窗口

SAS库

  1. 临时库(WORK库):这是SAS的默认库。如果我们创建的数据不选择其他库将默认存储于临时库。可以在资源管理器窗口看到WORK库。如果在关闭或者重启SAS前没有将该数据存储于一个永久库,数据将会丢失。

SAS Enterprise Guide

学习教程的过程中,您将学习以下内容:

  • 创建和保存项目
  • 向项目添加 SAS 数据
  • 从文本文件导入数据
  • 创建和修改列表报表
  • 创建条形图和饼图
  • 使用查询连接表
  • 使用查询创建计算列
  • 生成汇总统计量表
  • 基于数据运行线性模型分析
  • 将多个报表组合成单个文档

在继续相应教程之前,您需要首先了解一些有关 SAS Enterprise Guide 和 SAS 软件之间的关系。

SAS程序语法

注释

/*

* */

从外部文件中导入数据

一些知识点

此选项只在INFILE语句中与选项DSD一起使用时才有效。
注:DSD的作用:
将默认分隔符改为逗号
对于连续的两个分隔符,中间按缺失值处理
将字符变量值的引号去掉
对引号里面的分隔符按字符来对待
所以INFILE语句中的DSD选项自动把数据记录的分隔符设置为逗号,并且读入数据之前,把字符数据中的引号去掉,若加上“~”就会保留数据中的引号

MISSOVER 阻止INPUT语句从下一个数据行读入数据,未赋值的变量设为缺失


@ 适用于一个数据行被多个INPUT语句读入的情况。对INPUT语句可以这样理解,执行INPUT语句后会自动换行,当有@时表示不换行(但DATA步进入下一循环时会换行)。

@@ 适用于一个数据行包含多个观测值的情况,第一@可以理解为HOLD input语句,第二@可以理解为hold DATA步循环。意指:即使DATA开始下一次循环,INPUT语句仍hold,直到数据行结束,或下一个INPUT语句。

data test;
infile cards ;
input x @; /单个@,能H住,有效期到下一个input语句/
input y; /没有@,H不住,下一个input语句会去读新的一行/
input z @@; /两个@,H住没问题,有效期延长到Data步下一圈/
cards;
1 2 3
4 5 6
7
run;
proc print;run;

Obs x y z
1 1 2 4
2 5 6 7