欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    SAS学习系列02 输出数据报表.docx

    • 资源ID:23608714       资源大小:198.40KB        全文页数:15页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    SAS学习系列02 输出数据报表.docx

    1、SAS学习系列02 输出数据报表02. 输出数据报表利用SAS数据集,可以用PROC PRINT过程步根据需要输出各种满足一定条件的报表。一、 直接输出语法:proc print data = 数据集;run;注:此时(不加任何参数),默认(1) 输出数据集中的所有观测值和变量;(2) 报表最左侧增加一列观测值计数列“Obs列”;(3) 报表中变量出现的顺序与数据集中位置相同。(4)若要双倍行距输出报表,可以在数据集后面加上可选参数:“double”.例1 输出路径D:我的文档My SAS Files9.3下的SAS数据集therapy.代码:libname patients D:我的文档My

    2、 SAS Files9.3;proc print data=patients.therapy; /* 注意数据集前加上 data = 否则报错 */run;运行结果(部分):二、 选择变量和输出顺序语法:proc print data = 数据集; var 变量1 变量2 ; run;注:(1)若不输出观测值计数列Obs,需加上参数noobs;(2)若要指定某列或某几列代替“Obs列”,可用id 变量1 变量2 注意:若一个变量既是var变量又是id变量,将输出两次。例2 (1) 输出原始数据集sasuser.admit (2)只输出变量age height weight fee代码:proc

    3、 print data=sasuser.admit noobs;run;proc print data=sasuser.admit;var Age Height Weight Fee;id ID Name; run;运行结果(部分):三、 选择部分观测值语法:proc print data = 数据集;where 条件语句run;表示选择满足某条件的观测值。注意,where语句可以指定数据集中任何变量,而不受var语句的限制。条件语句可以由各种SAS算符和括号组合而成,为此下面介绍一点SAS中的比较、逻辑算符:符号含义示例= 或eq等于where name = Jones, C.;= 或ne不

    4、等于where temp = 212; 或gt大于where income 20000; 或lt小于where partno = 或ge大于等于where id = 1543;= 或le小于等于where pulse = 85contains或 ?包含where firstname contains Jon;in属于where actlevel in (LOW,MOD);where fee in (124.80,178.20);and且where age75;or或where area=A or region=S;例3 输出数据集Sasuser.admit中满足条件Age30并且Height6

    5、5的观测值,只输出变量Age Height Weight Fee.代码:proc print data=sasuser.admit;var Age Height Weight Fee;where Age30 and Height65;run;运行结果(部分):四、 对数据进行排序语法:proc sort data=数据集 out=新数据集;by 变量1 变量2 ;run;注:(1)省略“out=新数据集”,原数据集将被排好序的数据集替换;(2)“”为可选参数(递减排序),只对紧随其后变量起作用;默认是递增排序;(3)先按变量1排序,变量1相同,再按变量2排序(4)缺省值,当成最小的值。例4 对

    6、数据集Sasuser.admit按照Weight递减,Age递增排序,将排序好的数据存为临时数据集work.wgtadmit. 并输出Age30的观测值,可选变量为Weight Age Height Fee.代码:proc sort data=Sasuser.admit out=work.wgtadmit;by descending Weight Age;run;proc print data=work.wgtadmit;var Weight Age Height Fee;where Age30;run; 运行结果(部分):五、 对数值变量生成按列汇总1. 语法: proc print dat

    7、a = 数据集;sum 变量1 变量2 ;run;注:列的汇总,出现在最后一行,格式与变量列相同。例5 输出数据集Sasuser.insure中满足条件Pctinsured 80的观测值,对Balancedue列作汇总,只输出变量Name Policy Balancedue.代码:proc print data=Sasuser.insure;var Name Policy Balancedue;where Pctinsured 80;sum Balancedue;run;运行结果:2. 若要分组汇总,可以用by和sum组合来实现。语法: sum 变量1 变量2 ;by 变量1 ;注:(1)需要

    8、对数据集进行“分组”处理时,可以用by语句,但要求数据集事先必须已经按by变量排好序了;(另一个“分组”处理语句是class,不要求数据集事先按class变量排序,按class变量的不同值进行分类计算和分析)(2)notsorted选项的作用就是告诉SAS:数据不是按照字母或者数字大小排序的,而是按照by变量的值按组排列的;(3)输出结果根据by变量不同的值,分成多个报表。例6 对数据集Sasuser.admit按Actlevel分组分别对各组的Fee进行汇总。代码:proc sort data=Sasuser.admit out=work.activity;by Actlevel;run;p

    9、roc print data=work.activity;var Age Height Weight Fee;where Age40;sum Fee;by Actlevel;run;运行结果:若要以更紧凑直观的报表输出(用分组变量列代替Obs列),可以再加一个id语句,改写例6的代码如下:代码:proc sort data=Sasuser.admit out=work.activity;by Actlevel;run;proc print data=work.activity;var Age Height Weight Fee;where Age40;sum Fee;by Actlevel;i

    10、d Actlevel;run;运行结果:若在每页输出一个报表,可以加上“pageby actlevel;”。六、 设置报表的标题和脚注语法: title 标题名;footnote 脚注名;注:(1)默认的标题是“SAS 系统”(居中),默认无脚注;(2)可选参数n,用来指定标题/脚注所在的行(title=title1);(3)title和footnote是全局命令,除非重新定义新的title和footnote或者结束当前SAS会话,否则将对后面的输出始终有效(取消前面的title,可以只用tilte关键词后面不加标题名)。例7 设置标题和脚注的例(无title2,会空出第2行).代码:titl

    11、e1 Heart Rates for Patients with;title3 Increased Stress Tolerance Levels;footnote1 Data from Treadmill Tests;footnote3 1st Quarter Admissions;proc print data=Sasuser.stress;var resthr maxhr rechr;where tolerance=I;run;运行结果:七、 为变量指定描述性标签数据集的变量名可能是简写或略写,表义并不明确,可以用label命令重新指定变量标签。语法: proc print data=数

    12、据集 label; label 变量1 = 变量标签1 变量2=变量标签2 ; run;注:数据集后面不要忘了加上label.例8 给变量设置描述性标签的例. 将变量名height设为Height in Inches, 将变量名weight设为Weight in Pounds.代码:proc print data=Sasuser.admit label;var actlevel height weight;label actlevel=Activity Levelheight=Height in Inches /* 也可以每个标签,都用label命令引出 */weight=Weight in

    13、Pounds;run;运行结果(部分):八、 为输出变量指定格式1. 日期、数值等都有不同格式,可以根据需要指定。语法: proc print data=数据集;format 变量1 格式1 变量2 格式2;run;常用变量格式列表:格式语句含义示例w.整数值共占w位,无小数位5678w.d数值共占w位,d位小数5678.90$w.字符值共占w位,无小数位charDATE7.日期值共占7位,无小数位16OCT99 DATE9.日期值共占9位,无小数位16OCT1999MMDDYY 8.月日年共占8位,无小数位06/05/03MMDDYY10.月日年共占10位,无小数位09/12/1997COM

    14、MAw.d逗号表示数值,共占w位,d位小数5,678.90DOLLAR w.d“美元号+数值”共占w位,d位小数$38,245.40注:(1)若指定的总位数w不够,SAS系统将自动按“最优选择”输出,例如,同样是“38245.3975美元”,DOLLAR12.2 输出 $38,245.40;DOLLAR9.2 输出 $38245.40DOLLAR8.2 输出 38245.40(2)SAS中的日期变量是按数值存储的,从01/01/1960开始计数,即0=01/01/1960, 1=01/02/1960.(3)在proc步中指定的label和format只是临时指定,只对当前程序步起作用。若要永久的指定label和format,可以在data步中使用label和forma命令;(4)也可以自己定义格式来使用,例如:proc format;value $repfmtTFB=BynumMDC=CrowleyWKK=King;run;proc print data=vcrsales;var salesrep type unitsold;format salesrep $repfmt.;run;


    注意事项

    本文(SAS学习系列02 输出数据报表.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开