1. sas导入数据
data abc;
infile 'D:\sas\ab.txt';
input name $9. @12 jobhist $35. @48 manger :$9.;
**最后一个必须为冒号修正符;
run;
另外这里有几种方法,
也就是inflie 有好几个选项:MISSOVER TRUNCOVER PAD ; 自己试试看有什么不一样,
这三个选项各用法不一样,而系统默认为MISSOVER
这里必须改为
data abc;
infile 'D:\sas\ab.txt' TRUNCOVER;
input name $9. @12 jobhist $35. @48 manger $9.;
run;
2. 怎样将EXCEL文件转换成SAS可读的TXT文件格式
不要使用导入导出向导,直接使用infile来导入类似平面文件(excel不是平面文件,需要先打开EXCEL把数据另存为TXT或者CSV等平面文件)。
如果是CSV那么delimiter = ','
如果是以空格分割的TXT那么delimiter = ' '
如果是以制表符分割的TXT那么delimiter = '09'x
如果是MDB格式的文件那么delimiter = '*'
/*data step start*/
data data_file;
%let _EFIERR_ = 0;
infile '文件路径和文件名' delimiter = ','
MISSOVER DSD lrecl=32767 firstobs=2 ;
informat 字段1 $20.;
format 字段1 $20.;
input 字段1;
if _ERROR_ then call symputx('_EFIERR_',1);
run;
/*data step end*/
你的文件可能是以制表符分割的TXT,那么delimiter = '09'x。
试试吧。
3. 求SAS大神帮忙,SAS导入数据问题,怎么样导入大的CSV或TXT文件(变量长度未知)
你var1-16这些变量声明这么长干啥,声明的长就占的空间大了,一个变量一万多字节,一个观测就200k了,120万条数据就240g了,还没算其他空间开销
根据实际需要声明长度,够用就行了
4. 怎么用sas导入txt中的这种数据
先读, 读进去后再转换。
上代码:
libname rr "G:\temp";
data rr.test;
infile "R:\a.txt" dsd dlm='09'x truncover firstobs=2;
input month y1993 y1994 y1995 y1996 y1997 y1998 y1999 y2000;
run;
data rr.new(keep=month year quant);
set rr.test;
array y{*} y1993--y2000;
do i=1 to dim(y);
Year=input(substr(vname(y{i}),2,4),4.);
Quant=y(i);
output;
end;
run;
proc print data=rr.new;run;
5. 怎样将txt格式的文件导入到数据库中
先要将oracle跟sas连接,这个操作,也不好解释的,在管理工具—>数据源(odbc)—>添加,然后自己设置
在sas中新建逻辑库ccs,跟oracle先连接好,然后写入以下代码:
libname
ccs
oracle
user='esp'
//ccs为逻辑库名
password='esp'
path='sdbnccs'
//user与password为oracle用户名和密码,sdbnccs是数据库名
libname
source
'e:\sas';
//source
为本地要上传的文件路径
data
ccs.table_name;
//要导入oracle中的表名
set
source.file1
source.file2
...;
//要导入的本地sas7bdat文件
run;
我导入了很多个大表,挺方便,主要是之前的,配置连接可能有点困难,不懂可以问我!