Re: [程式] SAS資料檔讀取或寫入format的問題
※ 引述《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
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):