SAS|proc report

PROC REPORT

制表输出统计量
输出具体观测
一般格式;

proc report data=数据集 <option>;
	column 变量;
	define 变量/options;
	break after|before 变量/<option>;
	compute after|before 变量;
	line "描述";
	endcomp;
run;
proc report语句常用选项

nowd:将结果显示到结果查看器窗口,不输出到新的报表窗口;
headline:在表头下方显示一条分割线,使表头与下方数值分开

column语句

作用:指定输出的一个或多个变量。当指定的变量均是字符型时,输出所指定变量的每一条观测;当指定的变量均是数值型时,仅输出指定数值变量的总和;当指定的变量既有数值型变量又有字符型变量时,输出所指定变量的每一条观测;只有在analysis中指定了的变量才能在该语句中定义展示方式,即逗号、空格或星号。

define语句

常用选项:
format= 指定数值变量的显示格式;
width= 指定列的宽度;
统计量 输出各种统计量,如n、mean、std等;
表格中显示的位置 center居中显示、right居右显示、left居左显示,默认情况下数值靠右显示、字符靠左显示;
变量显示方式 group分组变量、across交叉显示、order排序显示、display显示每一条观测、analysis指定分析变量并制定相应的统计量、computed作为公式新计算产生的变量(值得注意的:一个变量group显示,其他变量不能是display显示;analysis只能指定一个统计量,想要指定多个,需要在column列出,以逗号表示交叉显示);

break语句

可在指定变量上方(before)或变量下方(after)插入一条分割线,只能指定和order或group展示的变量,常用选项:
ol:在指定变量上方显示一条单横线作为分割线;
ul:在指定变量下方显示一条单横线作为分割线;
dol:在指定变量上方显示一条双横线作为分割线;
dul:在指定变量下方显示一条双横线作为分割线
compute语句
在指定变量的上方或下方插入一行由line语句指定的描述性文字,compute和endcomp必须同时出现,compute语句只能指定和order或group展示方式的变量前添加文字或空格。
where语句
显示符合条件的观测

proc format;
	value bdfmt 
		0="偏瘦" 
		1="正常" 
		2="偏胖" 
		3="肥胖" 
		4="重度肥胖";
run;
data bd;
	set fbg;
	bmi=weight/(height/100)**2;
	if bmi<18.5 then bd=0;
	else if bmi<24 then bd=1;
	else if bmi<27 then bd=2;
	else if bmi<30 then bd=3;
	else bd=4;
	format bd bdfmt. bmi 5.2;
run;


/*指定字符型变量*/
proc report data=bd headline;
	column gender age ;/*输出所有字符型变量值*/
run;
/*指定数值型变量*/
proc report data=bd nowd headline;
	column height weight fbj bd;/*默认输出数值型变量的总和*/
run;


/*同时指定字符型和数值型*/
proc report data=bd nowd headline;
	column gender age bd height weight fbj;/*输出所有字符型变量和数值型变量*/
run;


/*用define语句对变量进行设置*/
proc report data=bd headline nowd;
	column gender age fbj bmi;    
	define gender/   display width=10 ;
	define age/     display  width=10 ;
	define fbj/     display  format=4.1 center;
	define bmi/      display  format=4.1;
run;


/*order 排序*/
proc report data=bd headline nowd;
	column gender age fbj bmi;    
	define gender/   order width=10 ;
	define age/     display  width=10 ;
	define fbj/     display  format=4.1 center;
	define bmi/      display  format=4.1;
run;


/*group 分组*/
proc report data=bd headline nowd;
	column gender age fbj bmi;    
	define gender/   group width=10 ;
	define age/      across width=10 ;
	define fbj/     analysis mean format=4.1 center;
	define bmi/      analysis mean format=4.1;
run;


/*analysis分组*/
proc report data=bd headline nowd;
	column gender age,(fbj bmi),(mean sum);    
	define gender/   group width=10 ;
	define age/      across width=10 ;
	define fbj/     analysis mean format=4.1 center;
	define bmi/      analysis mean format=4.1;
run;


/* break语句*/
proc report data=bd headline nowd;
	column gender age fbj bmi;    
	define gender/   group width=10 ;
	define age/      group width=10 ;
	define fbj/     analysis mean format=4.1 center;
	define bmi/      analysis mean format=4.1;
	break after gender/ dul summarize;
run;


/*compute语句*/
proc report data=bd headline nowd;
	column gender age fbj bmi;    
	define gender/   order width=10 "性别";
	define age/     display  width=10 "年龄";
	define fbj/     display  format=4.1 center;
	define bmi/      display  format=4.1;
	compute before ;
		line "基本信息";
	endcomp;
run;


/*where语句*/
proc report data=bmi nowd hedline;/*nowd表示结果不显示在报表窗口,而显示在输出窗口;headline表示在表头下方显示一条分割线*/
	column gender age fbg bmi;/*指定高输出显示的4个变量*/
	define gender/width=10;/*指定gender列的宽度为10*/
	define age/width=10;/*指定age列的宽度为10*/
	define fbg/format=6.1;/*指定fbg的输出格式为6.1*/
	define bmi/format=6.2;/*指定bmi的输出根式为6.2*/
	where bmi>=27;/*利用where语句仅输出bmi>=27的观测*/
run;
  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值