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;
我導入了很多個大表,挺方便,主要是之前的,配置連接可能有點困難,不懂可以問我!