Note 5 -- sas中过程步常用语句

《SAS统计分析实用宝典》学习摘要

一、输出语句

output语句用于指定sas过程步中产生的结果输出数据集,基本格式如下:

output out = 输出数据集名 [关键字 = 变量名]

其中,“关键字 = 变量名”选项可用于指定输出数据集中的结果,关键词为sas过程中使用的sas结果名,为一个sas过程输出结果的默认命名,而变量名为输出数据集中的变量名,是可以人为进行命名的。
output 语句示例
在下面的程序中利用了means过程对sas数据集shoes执行均值计算操作,并通过output语句将计算结果输出到指定的数据集中。

proc means data = sashelp.shoes;
var sales; /*对变量sales进行均值分析*/
*输出结果数据到数据集resultmean,并指定均值分析的几个统计量的结果名
output out = resultmean n = n_result min = min_result max = max_result mean = mean_result
result;
run;

打印出的结果如下图:
在这里插入图片描述
如果无output语句,sas默认的输出结果中如下:
在这里插入图片描述

二、打印语句

print语句是较为常用的数据集打印语句,其基本格式如下:

proc print data = 数据集名 [noobs];
	var 变量列表;
	where 表达式;
run;
  • data = 数据集名:用于指定需要打印的数据集。
  • noobs:表明输出观测序号。
  • var:指定需要进行打印的变量。
  • where:选择部分符合条件的观测

print 语句示例
对上面的resultmean数据集进行打印。

proc print data = resultmean;
run;

proc print data = resultmean noobs;
run;

proc print data = resultmean noobs;
var n_result max_result;
run;

三种打印结果如下图:
在这里插入图片描述

三、标注语句

1、 title 语句

为了更好地向用户解释输出的结果,可以在过程步语句上方添加合适的标题,默认情况下标题为“SAS系统”,指定sas程序标题内容的title语句的格式为:

title '标题内容'

在使用title语句的过程中,用户需要注意该语句的作用域较大,用户进行一次设置后,在未退出sas系统前,所有的语句都将采用已经设置的标题。用户如果想取消,则可以通过一个空的title语句来实现。
title 语句示例
给resultmean的打印标题更改为“12345”。

title '12345';
proc print data = resultmean;
run;

结果如下:
在这里插入图片描述

2、footnote 语句

footnote可以为sas系统输出加脚注,基本格式为:

footnote '脚注内容';

同样,footnote的作用域也很大,通过空的footnote语句可以取消。
footnote 语句示例

title;
footnote '54321';
proc print data = resultmean;
run;

结果如下图:
在这里插入图片描述

四、Model 语句

在一些sas过程中,model语句用于指明所采用的统计分析模型类型,其基本格式为:

model 因变量列表 =  自变量列表;

通过上述形式的Model语句,可以指定所构建的模型的因变量和自变量,例如:“model y = x;”则将在sas系统中构建利用自变量x预测变量y的模型。

五、var 语句

var语句用于向sas过程指明需要分析的变量,基本格式为:

var 变量名1 变量名2 ... 变量名n ;

var语句在前面示例中已有使用。

六、id 语句

在sas的一些过程中,为了方便用户区别不同的观测的结果,常常在结果输出时,最前面一例为观测的序号(obs),但是如果在变量中有一些名称变量,可以用来区别不同的观测(起到obs的作用),用户可以通过id语句指定用来区别观测的变量,结果输出时将以指定的变量来对观测进行标识,基本格式为:

id 变量名;

id 语句示例

data test1;
input number grade;
cards;
1001 99
1002 88
1003 77
1004 66
;
run;

proc print data = test1;
run;

proc print data = test1;
id  number;
run;

结果如下:
在这里插入图片描述

七、by 语句

在一些过程步中,需要对指定的变量分组执行相关的操作,在sas过程中实现变量的分组的语句是by语句,基本格式:

by [descending] 变量列表;
  • descending为可选项,默认情况下by语句执行升序排列,添加该项后为降序。
  • by语句可以同时对多个变量排序,先按第一变量分组,对于第一变量相同的观测按第二变量进行分组,依此类推。
  • 过程步中的by语句指定的分组变量需要是按照一定顺序排列好的变量,如果有未排序的变量,需要在使用by语句前排序。
    by 语句示例
proc sort data = sashelp.class out = test;
by sex;  /*按sex进行排序*/
run;

proc print;
by sex; /*按sex分组进行打印*/
run;

结果如图:
在这里插入图片描述

八、class 语句

在一些统计过程中可以使用class语句进行分类,然后对分类的变量进行统计分析,基本格式为:

class 变量列表;

class 语句示例

proc means data = sashelp.class;
class sex;
var height;
run;

结果如下:
在这里插入图片描述
使用by语句也可以实现同样的分析结果,但注意by语句涉及的变量要排序。

proc sort data = sashelp.class out = test;
by sex;  /*按sex进行排序*/
run;

proc means data = test;
by sex;
var height;
run;

结果如下:
在这里插入图片描述

就分组来说,by语句的使用只要是变量经过排序后,使用是比较灵活的,而class只有在特定的一些统计过程中才可以更加方便,但是如果在打印这样的过程步中,class语句就无法做到分组进行打印。

发布了17 篇原创文章 · 获赞 6 · 访问量 1350
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览