Re: [程式] SAS資料檔讀取或寫入format的問題

看板Statistics作者 (焦了六年變脆了)時間16年前 (2009/09/22 12:37), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《kenshin528 (成立奧凶帝國!!)》之銘言: : [軟體程式類別]: : SAS : [程式問題]: : 資料處理 : [軟體熟悉度]: : 高(1年以上) : [問題敘述]: : 關於資料檔FORAMT的問題 : 問題一: : FORMAT的寫入: : 當我自己建構SAS7bdat資料檔時,會使用proc format來定義變項的格式, : 但是當我再讀取資料檔的時候,如果直接從libary開啟檢視的話,會顯示格式跑掉 : 的訊息, : EX: : ERROR: Format A2A not found or couldn't be loaded for variable A2. : ERROR: Format A4A not found or couldn't be loaded for variable A4. : ERROR: Format A5A not found or couldn't be loaded for variable A5. : ERROR: Format A7A not found or couldn't be loaded for variable A7. : ERROR: Format B2A not found or couldn't be loaded for variable B2_1. : 我必須使用option nofmterr;的指令來忽略format才有辦法讀取檔案, : 我想請問要如何將格式內嵌在資料檔中? : 因為我讀取我老闆處理的資料檔,皆沒有上述的問題,檢視資料檔時,變項名稱 : 會變成foramt設定的名稱,但是我老闆又不肯跟我講這怎麼弄QQ! 使用者自定的format定義似乎不能直接內嵌在資料檔中?那個定義是存在.formats的 檔案裡面,SAS在開啟資料檔的時候才會去抓的,所以原則上如果資料有跨主機傳遞過 的話,資料檔跟.formats檔應該要包一起才行。 由於不確定你讀取你老闆的資料檔是否是在他的電腦上讀取,所以假設開啟資料的電腦 中已經有一個檔案是存取自創format資訊的,可以試著在電腦上找autoexec.sas這個檔 案(通常是存放在sas的根目錄下),估計你老闆是已經在autoexec.sas中寫入呼叫那個 存放format資訊的library了,所以sas一啟動就會自動set好那個libref,所以開檔案的 時候才call的到format的資訊 以上是我的猜測,有錯還請告知:) : 問題二: : 另外一個是檢試資料檔的問題: : 當我檢視老闆給我的sas7bdat檔案時,變項名稱會顯示format的名稱, : 例如變項名稱sex,打開來看那一欄會顯示性別, : 當我需要更動變項時,就必須去開CODEBOOK或是變項屬性才能看到原本的變項, : 想請問有沒有辦法將這樣的資料捨棄原本的格式, : 讓我在檢視檔案的時候就能看到變項名稱,謝謝 這邊講的應該是label的問題? 假如是label的話有兩個方法 第一:如果只是想要在開啟檔案的時候欄位名稱顯示variable name不要顯示label的話 開啟資料之後去工具列的view->column names就可以切換了,這個方法會保留 label的資訊,不會更動到檔案 第二:如果是要在檔案中完全抹除label的設定的話,可以參考下面的指令 proc datasets lib=XXXX nolist; modify XXXX; attrib _all_ label=''; *Remove labels; quit; run; 要使用一或二就看你想不想要保留label的資訊摟~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.40.59

09/22 15:58, , 1F
第二個問題我了解了 謝謝!
09/22 15:58, 1F

09/22 15:58, , 2F
第一個問題我也是很疑惑-.-
09/22 15:58, 2F

09/22 16:01, , 3F
我老闆是給我sas檔 沒有別的 看來我帶著酒去問好了-.-
09/22 16:01, 3F

09/22 16:54, , 4F
是喔 那問到記得分享一下 我也想知道> <
09/22 16:54, 4F

09/23 00:44, , 5F
推這句:帶著酒去問...
09/23 00:44, 5F
文章代碼(AID): #1Ak5H_uX (Statistics)
文章代碼(AID): #1Ak5H_uX (Statistics)