- 2.67 MB
- 2022-09-01 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
SAS软件应用\nSAS数据分析过程建立数据集整理数据集分析数据、按照适当的形式输出\n一、SAS数据集与数据文件\n1、数据集的建立数据步dataa1;数据步开始inputxy;输入的变量cards;数据块开始(也可用infile12指定数据文件存储位置)34;数据块结束,必须单独占一行run;数据步结束语句(可以省略)Infile‘e:\tmp.dat’;\n过程步生成数据集(很多sas过程都可以)procmeansdata=sashelp.classnoprint;varweight;outputout=a2;run;也可以采用sas的ods生成数据集。\n2、sas与其他数据文件格式的导入和导出导入数据import过程procimportout=a3datafile='e:\tmp.xls'dbms=excelreplace;run;导出数据export过程procexportdata=sashelp.classoutfile='e:\stu.csv'dbms=csvreplace;run;\n二、数据集整理(数据加工)1、变量类型和缺失值数值型缺失值用”.”表示字符型缺失值用”空格“表示日期型自定义型根据自定义的类型属于字符还是数值\ndataa4;infile'e:\stu.csv'delimiter=','dsdfirstobs=2;inputname:$20.sex:$6.ageheightweight;bmi=(weight/2)/(height/100);数据加工语句run;\ndataa5;setsashelp.clss;bmi=(weight/2)/(height/100);数据加工语句run;\n2、数据集选项dataa6;setsashelp.class(keep=weight);run;以上程序的作用是生成的数据集中仅包含sashelp.class中得weight变量,常用的选项有keepdroprenamewhere等\n3、对观测的选择If语句If表达式then语句;else语句;dataa6;setsashelp.class(keep=weight);ifweight<100thenw='低体重';elsew='高体重';run;逻辑表达式为1时执行then后边的语句,否则不执行后边的语句。上例weight<100为时执行w='低体重‘其他的执行w='高体重'\n4、常用的运算符\ndataa6;setsashelp.class;if^(sex='男')thenw='低体重';elsew='高体重';run;dataa6;setsashelp.class;ifsex='男'andage<14thenm=1;run;\n5、where表达式dataa7;setsashelp.class(where=(sex='男'));run;procprintdata=a7;run;\n6、按变量值对数据集排序procsortdata=sashelp.classout=a7;byage;bydescendingweight;run;\n7、用sas语句生成新变量a赋值语句b使用sas函数Total=sum(weight,height)dataa4;infile'e:\stu.csv'delimiter=','dsdfirstobs=2;inputname:$20.sex:$6.ageheightweight;bmi=(weight/2)/(height/100);(赋值语句)run;\nc求和语句dataa8;setsashelp.class;i+1;run;\n8、do–end语句dataa8;setsashelp.class;ifsex='男'thendo;a=1;b=1;end;run;\n9、sas函数\n常用的函数dataa4;infile'e:\stu.csv'delimiter=','dsdfirstobs=2;inputname:$20.sex:$6.ageheightweight;bmi=(weight/2)/(height/100);bmi2=round(bmi,0.01);run;\ndataa9;name='tomas';name2=upcase(name);run;procprintdata=a9;run;dataa9;x='goodbadmiddlehigh';x1=scan(x,1,'');x2=scan(x,2);x3=scan(x,3);x4=scan(x,4);run;\ndataa9;x1='good';x2='bad';x3='middle';x4=x1||''||x2||''||x3;run;procprintdata=a9;run;\n10、循环语句dataa10;doa=1to20;x=a*10;output;end;run;\ndataa10;doa=1to20by2;x=a*10;output;end;run;dataa10;doa=1to20by2until(x>100);x=a*10;output;end;run;\ndataa11;doi=1to100;x=rannor(12345);y=rannor(12345)*5.2+25;output;end;run;