SAS导入数据资料下载.pdf
- 文档编号:5980963
- 上传时间:2023-05-05
- 格式:PDF
- 页数:4
- 大小:277.72KB
SAS导入数据资料下载.pdf
《SAS导入数据资料下载.pdf》由会员分享,可在线阅读,更多相关《SAS导入数据资料下载.pdf(4页珍藏版)》请在冰点文库上搜索。
3)选择将要导入的数据的物理地址,点击“OK”进入下一步;
4)选择将要导入的table,点击“next”;
5)选择将数据导入哪个逻辑库并填入数据集名称,点击“next”;
6)该步让用户选择是否将菜单操作背后的代码导出,若无必要直接点击“Finish”,完成数据的导入。
2.2.ImportImport过程步导入数据过程步导入数据1)Excel表格数据procimportout=index1datafile=C:
UsersAdministratorDesktop399101.xlsxdbms=excelreplace;
range=sheet1$;
getnames=NO;
run;
参数解释:
dbms规定外部文件格式的标示名replace规定替换已存在的文件range指定将要导入的数据范围getnames规定是否将第一行数据作为变量名2)csv数据procimportout=import_csvdatafile=C:
UsersAdministratorDesktopdata_lesson1鞍山20141112.csvdbms=csvreplace;
delimiter=,;
getnames=yes;
datarow=2;
guessingrows=4000;
dbms规定外部文件格式的标示名replace规定替换已存在的文件delimiter规定外部文件分隔符getnames规定是否将第一行数据作为变量名datarow规定从第几行开始读取数据guessingrows规定根据前多少条数据确定变量格式说明:
a)对于文件格式的标示名与源文件格式之间的对应关系参SAS编程技术教程b)一般情况都加上replace,以免重新导入数据时出错,当然也可以不加c)若文件含分隔符,则必须规定delimiter选项d)当getnames=yes时,datarow应大于1e)guessingrows最大取值为4000,若缺省此项,SAS默认将第一条数据的格式作为变量格式。
对于数据量超过4000条的数据最好不要使用procimport导入数据,有可能会导致字符被截断等情况。
接下来介绍的infile方法可以解决这一点。
3)Access数据procimportout=import_actable=contentdbms=accessreplace;
database=C:
UsersAdministratorDesktopdata_lesson1SpiderResult.mdb;
uid=;
pwd=;
3.3.InfileInfile语句导入数据语句导入数据在data步中使用infile语句,可以通过先定义变量的输入格式,再导入数据,避免出现字符截断等情况。
Infile语句导入数据的基本格式如下:
datainfile_csv;
infileC:
UsersAdministratorDesktopdata_lesson1鞍山20141112.csvdsddelimiter=,firstobs=2truncoverlrecl=1000;
informatarea_plate$munity$60.address$200.price$20.estate_time$40.constr_type$50.covers_area$30.constr_area$30.developer$100.property$100.plot_ratio$12.green_rate$12.property_fee$50.dta_date$10.pageurl$150.;
inputarea_plate$community$address$price$estate_time$constr_type$covers_area$constr_area$developer$property$plot_ratio$green_rate$property_fee$dta_date$id$pageurl$;
dsd表示源数据是分隔符敏感性的,即数据中存在非空格的分隔符delimiter规定外部文件分隔符firstobs规定从第几行开始读取数据,类似上文中的datarowobs读取数据的行数truncover当部分行数据长度小于其他行时,使用该选项防止SAS读入到下一行lreclSAS默认每条数据的长度不超过256个字节,当一条记录的长度大于该值时,会导致部分字段读取出错,使用lrecl可以定义单条数据的最长长度。
4.4.LibnameLibname生成库文件生成库文件Libname可以用来定义一个逻辑库,每个逻辑库对应一个数据库引擎,默认的情况下数据库引擎为V9(SAS自带数据库引擎)。
当然,也可以自由选择其他库引擎。
在导入EXCEL数据时可以定义一个库引擎为EXCEL的逻辑库,可以直接将EXCEL中的各张sheet直接导入到SAS中。
LibnamedexcelC:
UsersAdministratorDesktop399101.xlsx;
datalib_ex;
setd.399101$n;
对于Access数据亦然:
libnamecaccessC:
5.5.批量导入(批量导入(不讲不讲)1)批量导入一个文件中的所有csv数据需要编写一个宏,下面是批量导入100个城市的房价数据的代码:
%macrodirectory(dir);
%letrs=%sysfunc(filename(filref,&
dir);
%letdid=%sysfunc(dopen(&
filref);
%letnobs=%sysfunc(dnum(&
did);
%doi=1%to&
nobs;
%letname=%qscan(%qsysfunc(dread(&
did,&
i),1,.);
%letext=%qscan(%qsysfunc(dread(&
i),-1,.);
datafangjia&
i;
infile&
dir.&
name.&
extdsddelimiter=,firstobs=2truncoverlrecl=1000;
%end;
%letrc=%sysfunc(dclose(&
%mend;
%directory(E:
房价项目房价网数据20141113);
2)批量导入一张Excel表格中的多张sheet或批量导入Access文件中多张table使用libname导入方法即可。
6.6.数据的导出数据的导出略7.7.各种导入方法的优缺点各种导入方法的优缺点1)菜单操作方便,但对于有分隔符的数据(csv,txt),只根据前20行来确定各变量的属性,容易导致数据截断;
2)procimport对于不同数据类型,导入方法不尽相同,同样对于有分隔符的数据最多只能根据前4000条数据确定各变量的属性,也会导致数据截断;
3)infile语句不能导入EXCEL或ACCESS文件,但对于有分隔符的数据效果很好,还可以避免数据截断;
4)libname不能导入csv或txt文件,但对于Excel或Access有很好的批量导入解决方法。
(完)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAS 导入 数据