SAS程序语句中分为两类步骤:data步和proc步。

data步:产生SAS数据集。

proc步:对SAS数据集内的数据进行分析处理并输出结果。

1.基本结构

(1)语句构成:input x y $10.;

①SAS关键词:大部分语句用它来识别语句类型,如data,input,proc,infile。

②名字:变量名,数据集名,格式名,过程名,文件,库名等(N_表示数据步已执行过的次数)

③特殊字符串;

(2)算符

①比较算符:如果成立,运算结果为1,否则为0。

eg. if age>=16 then adult=1;else adult=0;

比较算符 算符含义
= 等于
^= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
in 等于列表中的一个

②算术算符:

算术算符 算符含义
** 乘方
*
/

+

-

③逻辑算符:

eg. x<y and c>0; x<y or c>0;not(A=B);

逻辑算符 算符含义
and(&)
or(|)
not()

表示否定

④其他算符:

eg.4<>5=5;   4><5=4;    'china'||'2021'='china2021'

其他算符 含义
><(min) 最小值
<>(max) 最大值
||(join)

连接两个字符

⑤运算次序:

括号里的→较高优先级的运算→相同优先级的运算,从左向右。

算符级别 算符
1 **;+(作为前缀,表示“正”);  -(作为前缀,表示“负”);^(非);  <>;  ><;
2 *;/;
3

+;  -;

4 ||
5 <;   <=;   >;   >=;   =;   ^=
6 &

2.data步:产生一个或多个数据集。

(1)直接输入

@,@@表示行停留指示符。@表示SAS停留到下一个input(也不换行),@@能使停留的时间到下一个data步(也不换行)。

data temp; *命名建立的数据集work.temp;
input x y z@@; *引入变量xy,并且连续输入;
cards; *直接输入数据,数据块开始;
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
; *数据块结束;

在一个data步内不换行,xyz一直循环取值。

data temp;*命名建立的数据集work.temp;
input x y z;*引入变量xy,并且连续输入;
cards;*直接输入数据,数据块开始;
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
;*数据块结束;

每一行xyz按顺序取完三个值后放弃此行其他值。

data temp;*命名建立的数据集work.temp;
input x;
input y;
input z;*引入变量xy,并且连续输入;
cards;*直接输入数据,数据块开始;
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
;*数据块结束;
run;

每个input表示另取一行取值,上述代码指x,y,z依次取第1,2,3行的第一个数字。

data temp;*命名建立的数据集work.temp;
input x@;
input y;
input z;*引入变量xy,并且连续输入;
cards;*直接输入数据,数据块开始;
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
;*数据块结束;
run;

x后的@使得下一个input的y取值不换行,但y后没有@,z换行取值。

(2)读取外部文件

infile '外部文件的所在位置及名称';
input 变量名1 变量名2 ...;eg.
data temp;
infile 'c:\user\temp.dat';
input x y@@;
run

(3)从已经建立的SAS数据集中抽取部分变量形成新的子集——set

*从adult文件中抽取sex相关信息,生成males,females表;
data males females;
set adults;*从文件adult中读取数据;
if sex='m' then output males;
if sex='f' then output females;
run;

(4)data步的语句及类型:文件操作语句,运行语句、控制语句和信息语句。

a.文件操作语句:用于输入数据集或者从这个data步输出。

文件操作语句 语句作业
data 告诉sas开始data步,并创建一个数据集
input 描述数据行或外部输入文件上的记录
cards 标志数据行的开始
put 描述sas输出行的格式
by 规定数据集被分组处理,by对分组进行定义
set

从一个或几个sas数据集中读取

merge 从两个或两个以上数据集合并为单个观测
infile 识别外部文件,读入原始输入数据

b.运行语句:用于创建或修改变量,或者选择一部分观测来创建数据集。

文件运行语句 作用
delete 从正被创建的数据集中删除观测
stop 停止产生当前的数据集
where 在进入data步前选择观测
output 产生新的观测
remove 从某个sas数据集中删除一个观测
replace 替代观测

c.控制语句:①对一些确定的观测跳过一些语句;②改变被执行语句的次序,实现从程序的一部分转移控制到另一部分。

文件控制语句 作用
do

建立一个语句,能够作为一个语句去执行

end 标记一个do组或select组结束
select 有条件地执行几个sas语句中的一个
go to 使sas跳到本程序步带有标号的语句,并在这里继续执行
if then/else 有条件地执行一个sas语句

d.信息语句:给出关于数据集或正被创建的数据集的附加信息。不是执行语句,出现在data步的任何地方,且具有同样功能。

文件信息语句 作用
array 定义一组能够用相同方法处理的变量
informat 对存储变量值规定了输入格式
format 对输出变量值规定格式
length 规定用来存储sas变量的字节数
label 把描述性标签与变量联系起来
drop 指出从数据集或分析中被删除的变量
keep 在数据集或分析中被保存的变量
rename 改变数据集中一些变量的名字

3.proc过程步

通常只需要 :一个proc语句(proc sas过程名)+一个run

eg.proc print;

run;

(1)sas过程名及作用

过程名 作用 必要语句
means 计算基本统计量 proc means;var x;run;
chart 计算次数分布表,次数分布图

proc chart;hbar x;run;

univariate

plot

正态分布检验 proc univariate plot;var x;run;
print 数据输出 proc print;run;
sort 数据排序

proc sort;run;

tabulate 制作表格 不理解代码,之后再补
anova 方差分析
GLM 协方差分析
nested 嵌套设计的方差分析
corr 相关系数计算 proc corr;var x y;run;
plot 相关点式图的绘制
cancorr 典型相关分析
reg 直线回归

cluster

可选择:average、wards、density、single、twostage

聚类分析

可选择:类平均法、重心法、离差平均和法、密度估计法、最短距离法、两阶段密度估计法

fastclus 动态聚类分析
standard 数据标准化
princomp 主成分分析
factor 因子分析
ttest t检验
npar1way 秩和检验
freq 检验
logistic logistic回归检验
stepdisc 逐步判别分析
candisc 典型判别分析

(2)告诉proc需要处理的数据集

如果处理最近创建的数据集:proc print;run;

如果处理之前创建的或者多个数据集:proc print data=score;run;

(3)告诉proc需要处理的变量

若是所有变量:不需说明;

若是指定变量:需使用var语句指出要处理的变量名。

proc print data=score;
var idnumber score;*仅显示上述两个变量;
run;

(4)是否分组处理数据

若需要分组处理数据,必须用by分类排序,在进行其他操作。

proc sort data=score;*对score数据集排序;
by sex;*按照sex;
run;
proc means data=score;*对分类后的score数据集求均值;
var score;*只对score变量分类求均值;
by sex;
run;

2.SAS的语言构成相关推荐

  1. saspython知乎_python学习笔记---linux/windows调用sas程序

    --------仅用于个人学习知识整理和sas/R语言/python代码整理 --------文章使用数据都为脱敏模拟数据 1.windows下 1.1 安装sas kernel: 跑偏了一下 其实不 ...

  2. 一家商业数据分析公司SAS,如何保持了40年的持续增长?

    有这样一家神奇的软件公司,从40年前创业伊始,就专注于创造数据分析的商用消费市场,为此开发了一整套软件平台以及230多种软件产品,把深奥数学原理广泛用于各类商业决策,让没有数学背景的人也能很容易用上数 ...

  3. java 调用 sas_通过JAVA、VB访问SAS IOM服务器

    欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 通过IOM("Integrated Object Model" )服务器,没有必要使SAS安装在本地系统 ...

  4. python进行对应分析_机器学习算法---对应分析

    --------仅用于个人学习知识整理和sas/R语言/python代码整理 --------该文章首发于csdn 正在迁移优化文章中 1.前言 对应分析,主要适用于有多个类别的分类变量,可以揭示同一 ...

  5. 大数据分析学习之七天玩转SAS-张璇-专题视频课程

    大数据分析学习之七天玩转SAS-674人已学习 课程介绍         本课程涉SAS编程基础.SAS数据获取与数据集操作.SAS变量操作.SAS观测值操作.SAS数据集管理.SAS数据汇总与展现. ...

  6. 业务相关--vintage

    vintage整理 --------仅用于个人学习知识整理和sas/R语言/python代码整理 ####1 . 前言 Vintage表,将不同时间层面的顾客拉平到同一时间周期上进行比较,观察不同入口 ...

  7. 统计分析--对应分析

    统计分析–对应分析 --------仅用于个人学习知识整理和sas/R语言/python代码整理 1.前言 对应分析,主要适用于有多个类别的分类变量,可以揭示同一个变量各个类别之间的差异,以及不同变量 ...

  8. R语言使用haven包的read_spss函数读取spss格式数据、使用haven包的read_sas函数读取SAS格式数据、使用haven包的read_dta函数读取Stata格式数据

    R语言使用haven包的read_spss函数读取spss格式数据.使用haven包的read_sas函数读取SAS格式数据.使用haven包的read_dta函数读取Stata格式数据 目录

  9. 科普:SAS是什么语言

    SAS语言是一种用于数据分析和统计建模的程序设计语言.SAS的全称为"统计分析系统"(Statistical Analysis System),是由美国SAS Institute公 ...

最新文章

  1. java-高并发解决方案
  2. c strlen C++ strlen
  3. Cadence Allegro PCB 铺铜(覆铜)Shape呈格点状填充而不是完整全铜显示问题–Allegro技巧...
  4. typora 字体颜色_Typora 使用教程
  5. WDS服务不能启动-----Service-specific error code 1056767740
  6. wince6.0 OK6410 启动NandFlash路径下的程序快捷键
  7. windows安装Pentaho Server
  8. cannot import name ‘_validate_lengths‘ from ‘numpy.lib.arraypad‘错误
  9. 【玩转微信公众平台之中的一个】序章(纯粹扯淡)
  10. 1483套求职个人简历PPT模板免费下载网址
  11. maven报错The JAVA_HOME environment variable is not defined correctly
  12. 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付
  13. 2020年部编人教版小学一年级语文(上册)全部知识点汇总
  14. scratch学习-基础-认识scratch
  15. Android 自定义计时器
  16. (错误)SyntaxError: invalid syntax
  17. BIM技术在住宅园区物业管理中的应用及其优势
  18. php5.4支持反代,用免费的香港php虚拟主机反代美国鸡建站,真香~~
  19. linux的垃圾箱是哪个文件夹,Ubuntu命令行的垃圾箱Trash CLI,远离 rm 命令误删除重要文件的阴影...
  20. python爬虫库是什么意思_Python爬虫基础-两个实用库

热门文章

  1. 东南大学计算机复试被刷概率,这些考研复试的雷区考生千万别碰,即使初试得高分,被刷概率也大...
  2. 最全的搭建Java的开发环境以及eclipse安装配置开发工具
  3. leetcode 5370. 设计地铁系统(C++)
  4. OpenSSL 编程 二:搭建 CA
  5. 金蝶云二开引入excel的方法
  6. matlab如何求tan的反函数,为什么用MATLAB finverse函数求反函数出现了问题
  7. 安徽师范大学学python_安徽师范大学2019年各省各专业录取分数线
  8. 知乎高赞:35岁失业的中年人,都去了哪儿?
  9. 清华大学计算机接收调剂吗,2018年清华大学校内接收调剂生信息公布
  10. [CVPR2021-best]GIRAFFE: Representing Scenes as Compositional Generative Neural Feature Fields