SAS程序语句

SAS程序语句

程序的储存
在这里插入图片描述
程序的调用
在这里插入图片描述
变量:
数值型变量
字符型变量

关于@:
一个数据步可以包括多个INPUT语句。在数据步执行过程中,一般的,在INPUT语句执行前,会默认从外部数据源读取一个观测记录(一般为一行或多行)到输入缓冲器中,然后按照INPUT设定的格式读入相关变量到PDV中。当程序有多个INPUT语句时,每一个INPUT语句都会在执行前读入一个观测记录到输入缓冲器。因此若前一个input语句执行完毕之后,若该行的数据没有使用完,遇到下一个INPUT语句时也会放弃之前没有用完的数据。若需要保留前一个INPUT语句使用过的数据行供以后的input语句使用,只需在前一个INPUT语句最后加入跟踪符合@,表示该行没有用完的数据暂时保存在输入缓冲器中以备下一个最近的INPUT语句使用。

set语句

可以从已有的SAS数据集中创建新的数据集
在这里插入图片描述
set语句、Merge语句链接数据集的例子

  1. 纵向连接(追加数据集)
    在这里插入图片描述
  2. 横向连接
    在这里插入图片描述
    如果需要合并的数据集中的观测并不是一一对应的关系,则需要用by语句指定各数据集中用于匹配观测的变量。(使用by语句之前,需要先对关键字段进行排序。
    在这里插入图片描述
    在这里插入图片描述

循环语句
在这里插入图片描述
Keep语句

Data sas2_11;
Set student;
Keep id name sex age;
Run;
Proc print data=sas2_11;
Run;

Drop语句

Data sas2_11;
Set student;
Drop height weight;
Run;
Proc print data=sas2_11;
Run;

FREQ过程

产生一维到 n 维频数表和交叉(列联) 表
PROC FREQ;TABLES A ;RUN;
TABLES 指定要分析的定性变量
TABLES A 产生一维频数表
TABLES A*B 产生二维列联表(A是行B是列)
TABLES A*B*C 产生三维列联表 (A是分层,B是行,C是列)
TABLES A*(B C) 产生AB、AC两个二维表
TABLES X1-X3 产生X1、X2、X3三个一维表
TABLES (X1-X4)*Y 产生X1Y X2Y X3Y X4Y四个二维表

MEANS过程

输出样本含量、均数、标准差、最小值、最大值
( N、Mean、Std Dev、Minimum、Maximum)

CLASS 指定分组变量(可以不写)
VAR 指定需要分析的变量(不写即分析全部变量)
MAXDEC=n 指定计算结果保留小数位数(默认2位)

Data sas3_2;
Input sex$ age w h @@;
Cards;
f 15 46 156 f 14 41 149 f 18 65 165 m 15 50 160 m 13 48 155
m 18 70 180 m 14 38 150 m 16 55 165 m 17 68 176 m 16 60 170
f 17 50 160 f 17 58 160 f 16 60 165 m 17 65 175 f 18 61 162
;
Proc means data=sas3_2 mean std cv median p50 clm maxdec=3; /选项maxdec指小数点后保留的位数/
Var h w;
Class sex;
Run;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值