[程式] sas 匯入csv檔的問題

看板Statistics作者 (那就念吧~~)時間4年前 (2022/01/22 16:32), 4年前編輯推噓0(005)
留言5則, 2人參與, 4年前最新討論串1/1
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://www.ptt.cc/bbs/Statistics/M.1642840349.A.92B.html

01/23 07:46, 4年前 , 1F
應該是預設的欄位長度不夠,用length新增一個欄位把長度
01/23 07:46, 1F

01/23 07:46, 4年前 , 2F
設長一點或許能解決
01/23 07:46, 2F
我看網路上PORC IMPORT 有關長度的問題就是加GUESSINGROWS 大大的用length是指這個嗎?

01/23 14:50, 4年前 , 3F
proc import其實只是infile的interface,要改屬性可以從log
01/23 14:50, 3F

01/23 14:51, 4年前 , 4F
把程式碼貼出來用, 或者可以在proc import加GUESSINGROWS=
01/23 14:51, 4F

01/23 14:52, 4年前 , 5F
去增加proc import判斷屬性的行數,就不會被截斷了
01/23 14:52, 5F
我的GUESSINGROWS=1000了 還是不夠長會被截斷嗎? ※ 編輯: dofu1943 (36.228.56.68 臺灣), 01/23/2022 15:22:09
文章代碼(AID): #1Xwy4Tah (Statistics)