您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 绩效管理 > SAS学习系列04. 导入数据Ⅱ——Excel文件
04.导入数据Ⅱ——Excel文件(一)导入Excel数据文件一、import语句导入语法:procimportdatafile=’文件路径+文件名’OUT=输出数据集名DBMS=EXCELREPLACE;可选参数;注:(1)REPLACE告诉SAS若“输出数据集”同名文件已经存在,则替换它;(2)可选参数:a.指定要读取的是哪一个工作表SHEET=工作表名;b.若只读取工作表的一部分范围RANGE=工作表名$A1:H10;c.是否从工作表的第一行读取数据集的列变量名?GETNAMES=YES——是;GETNAMES=NO——否;d.读取字符和数值混合的数据表时,是否将所有数据转化为字符?MIXED=YES——是;MIXED=NO——否;示例:procimportDATAFILE='c:\MyRawData\OnionRing.xls'OUT=salesDBMS=XLSREPLACE;例1路径“D:\我的文档\MySASFiles\9.3\”下的数据文件exercise.xlsx,内容如下:读取工作表test2中从A1到H10的数据,第一行作为数据集的列变量名。代码:procimportdatafile='D:\我的文档\MySASFiles\9.3\exercise.xlsx'DBMS=EXCELOUT=resultsREPLACE;SHEET='tests2';RANGE='$A1:H10';GETNAMES=YES;run;procprintdata=results;title'SASDataSetReadFromExcelFile';run;运行结果:二、libname语句读入1.基本语法用libname语句引用一个Excel文件(“工作簿”),其中的“工作表”作为数据集,数据集名称为:’工作表名$’n语法:libname引用名‘文件路径+文件名’可选参数;注:(1)访问数据集用:引用名.’工作表名$’n(2)工作表若有“名称框”(NamedRange:单独命名的一部分区域),将单独作为数据集,区别是数据集名没有$示例:libnameresults'D:\MySASFiles\exercise.xlsx';procprintdata=results.'tests1$'n;例2路径“D:\我的文档\MySASFiles\9.3\”下的数据文件exercise.xlsx,内容如下:读取工作表tests1中的数据。代码:libnameresults'D:\我的文档\MySASFiles\9.3\exercise.xlsx';procprintdata=results.'tests1$'n;run;libnameresultsclear;运行结果(部分):程序说明:(1)执行libname语句之后,将会在逻辑库里创建新逻辑库results,里面存放用数据表生成的数据集test1$和tests2$:(2)libname语句提交之后,exercise.xlsx文件将与SAS相关联,Excel将不能打开编辑,要解除这种关联需要在程序最后加上“libnameresultsclear;”(逻辑库中的results将消失)。2.libname语句的可选参数(1)GETNAMES=YES|NO是否从工作表的第一行读取数据集的列变量名?YES——是;NO——否;(2)MIXED=YES|NO读取字符和数值混合的数据表时,是否将所有数据转化为字符?YES——是;NO——否;三、导入向导(ImportWizard)1.点击【文件】——【导入数据】2.点击Next,点Browse(浏览),打开要导入的Excel文件(exercise.xlsx),点OK.3.用下拉菜单选择要导入的数据表(tests1),点Options,选择需要的选项,点OK注意:第一行是否从工作表的第一行读取数据集的列变量名。4.设置输出数据集的逻辑库和数据集名称5.生成导入该数据文件的代码,点Browse设置保存路径和文件名,之后点Finish生成代码如下:PROCIMPORTOUT=WORK.RESULTSDATAFILE=D:\我的文档\MySASFiles\9.3\exercise.xlsxDBMS=EXCELREPLACE;RANGE=tests1;GETNAMES=YES;MIXED=NO;SCANTEXT=YES;USEDATE=YES;SCANTIME=YES;RUN;(二)将数据集导出到Excel文件可以用三种方法:①export语句(类似前面的import语句);②数据导出向导(ExportWizard);③libname语句前两种方法有的列没有导出成功。下面只介绍第三种方法:例3导出数据集Sasuser.Admit和Sasuser.Admit2,分别存入Excel文件“D:\我的文档\MySASFiles\9.3\exercise2.xlsx”的工作表tests1和tests2.代码:libnamemyxlsxEXCEL'D:\我的文档\MySASFiles\9.3\exercise2.xlsx';datamyxlsx.tests1(dblabel=YES);setSasuser.Admit;run;datamyxlsx.tests2(dblabel=YES);setSasuser.Admit2;run;libnamemyxlsxclear;程序说明:(1)libname指定引用名myxlsx,引用“导出Excel文件的路径和文件名”;(2)第一部分data将数据集Sasuser.Admit存入工作表tests1,dblabel=YES表示输出列变量名作为Excel数据的列标签名;(3)“libnamemyxlsxclear;”解除文件exercise2.xlsx与SAS的关联。
本文标题:SAS学习系列04. 导入数据Ⅱ——Excel文件
链接地址:https://www.777doc.com/doc-2857159 .html