SAS学习系列04导入数据ⅡExcel文件.docx
《SAS学习系列04导入数据ⅡExcel文件.docx》由会员分享,可在线阅读,更多相关《SAS学习系列04导入数据ⅡExcel文件.docx(9页珍藏版)》请在冰豆网上搜索。
![SAS学习系列04导入数据ⅡExcel文件.docx](https://file1.bdocx.com/fileroot1/2022-10/9/947877ed-1273-44bd-8c1d-304c6d655ff8/947877ed-1273-44bd-8c1d-304c6d655ff81.gif)
SAS学习系列04导入数据ⅡExcel文件
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;
程序说明:
(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.RESULTS
DATAFILE="D:
\我的文档\MySASFiles\9.3\exercise.xlsx"
DBMS=EXCELREPLACE;
RANGE="tests1";
GETNAMES=YES;
MIXED=NO;
SCANTEXT=YES;
USEDATE=YES;
SCANTIME=YES;
RUN;
(二)将数据集导出到Excel文件
可以用三种方法:
1export语句(类似前面的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的关联。