SAS 讀入EXCEL數據截斷


在SCANTEXT = yes 前提下,PROC IMPORT是默認掃描前16行數據,所以后面過長的數據會出現截斷。

guessingrows = MAX,最大為2147483647. 用2147483647行作為數據格式。

解決方法:

1. 修改注冊表,因為SAS沒辦法該注冊表,所以需要自己改

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel

Double click TypeGuessRows. In the DWORD editor dialog box, click
Decimal under Base. Type a value of 0, click OK and exit Regedit.

但現在也用不了了,壓根找不到這個注冊表了。

2. 使用infile
把數據copy到CSV格式中,直接讀取就好。

proc import OUT = raw
datafile = './_raw.csv'
DBMS = CSV replace;
delimiter = ',';  *delimiter也可能是" "或";", 有錯誤時挨個試下。;
getnames = yes;
/*datarow = 2;*/
guessingrows = MAX;
run;

 

data raw;
infile './_raw.csv' firstobs = 2 delimiter = ',' truncover lrecl=1000;
informat name $400.;
input name $;
run;

通過informat定義格式,避免出錯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM