作者dofu1943 (那就念吧~~)
看板Statistics
標題[程式] sas 匯入csv檔的問題
時間Sat Jan 22 16:32:23 2022
TITLE請註名軟體類別 如[程式] stata
SAS
[軟體程式類別]:
SAS
[程式問題]:
資料處理
[軟體熟悉度]:
新手
[問題敘述]:
資料長成這個樣子
var1, var2, var3, var4, var5
111222333444555, 14, , 201008, U
222333444555666, 67, nui, 200812,
我的資料是csv逗號分隔的型態
第1個變數的長度固定為15碼,第2個變數也是固定長度
但第3個變數開始有的觀察值是missing
第5個變數也是有的觀察值是missing
而且每一個觀察值會missing的欄位都不太一樣
我本來是使用程式範例(在下面程式1)的指令匯入
資料是可以依逗號匯入,但第1個變數被sas判定為數字,所以會顯示成科學符號
不知道有沒有方法可以在匯入時就將該變數指定為字串,而不要是數字
另外
我也有想過用INFILE的方式
但因為剛才有提到,寫到第3個變數時有的觀察值missing的位置不一樣
所以也沒辦法用程式2的指令指定位置
所以能不能使用proc import
在匯入時就將該變數指定為字串
讓長度比較長的變數可以完整的顯示出來
感謝版友解惑
[程式範例]:
(程式1)
PROC IMPORT OUT= WORK.data2
DATAFILE= "\\xx\xxx\data2.csv"
DBMS=CSV REPLACE;
delimiter=",";
GETNAMES=no;
DATAROW=1;
GUESSINGROWS=1000 ;
RUN;
以上程式也貼在這個網址
https://ideone.com/dP7kOF
(程式2)
libname x "\\xx\xxx\";
FILENAME IN1 '\\xx\xxx\data2.csv';
DATA WORK.data2;
INFILE IN1 MISSOVER PAD delimiter=',' dsd;
INPUT
var1 $1-15 var2 $18-19 ;
RUN;
https://ideone.com/fj78PO
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.241.87.243 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Statistics/M.1642840349.A.92B.html
1F:→ hank4465: 應該是預設的欄位長度不夠,用length新增一個欄位把長度 01/23 07:46
2F:→ hank4465: 設長一點或許能解決 01/23 07:46
我看網路上PORC IMPORT
有關長度的問題就是加GUESSINGROWS
大大的用length是指這個嗎?
3F:→ jupit: proc import其實只是infile的interface,要改屬性可以從log 01/23 14:50
4F:→ jupit: 把程式碼貼出來用, 或者可以在proc import加GUESSINGROWS= 01/23 14:51
5F:→ jupit: 去增加proc import判斷屬性的行數,就不會被截斷了 01/23 14:52
我的GUESSINGROWS=1000了
還是不夠長會被截斷嗎?
※ 編輯: dofu1943 (36.228.56.68 臺灣), 01/23/2022 15:22:09