我傾向於每天使用相同類型的數據。每次載入檔案時,JMP 都會將某些欄位設為“連續”,這樣作為名義值確實效果更好。
有沒有辦法告訴 JMP,如果它看到具有特定名稱(例如“case_id”)的列,它應該始終將其標記為名義列?
我知道腳本可以做到這一點,但每次打開文件時都必須運行腳本有點乏味。
嗨@BHarris ,
匯入過程中,您可以右鍵單擊該列將其定義為名義值。但是,我想您希望自動執行此操作,而無需每次打開工作文件時重新定義它。
我認為,如果您可以將腳本轉換為“加載項”,則可以告訴 JMP,如果他們看到具有特定名稱的列,則每次打開文件時始終將其定義為名義名稱。

但還是有疑問;
- 您開啟的檔案不在標準化的「列」/「標題」位置?
- 或者它是任何資料文件,但“case_id”列將始終存在?
是的,這些是具有“case_id”列的 .tsv 檔案 - 不保證檔案之間位於同一列中。
是否可以將加載項編程為在每次開啟檔案時執行?
您只需透過加載項開啟文件,而不是使用預設的開啟文件功能。
我已經測試瞭如下所示的簡單腳本,將 1 個資料夾內的 2 個 TSV 檔案的「case_id」轉換為名義值。
請注意我設定的路徑是“Documents/TSV”。
您可以變更 PC 上的測試路徑。
如果一切順利,那麼您可以將此 JSL 腳本轉換為加載項(請參閱https://community.jmp.com/t5/Learning-Center/Add-In-Builder/ta-p/276711 )
希望能幫助你。
//Open Table to pick file
Names Default To Here( 1 );
file = Pick File(
"Select the TSV file to input",
"$DOCUMENTS/TSV",
{"All Files|*"},
1,
0
);
If( file != "",
dt1 = Open(
file,
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Tab, CSV( 0 ) ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
First Named Column( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
)
);
//Standardize "case_ID" to character nominal
Names Default To Here( 1 );
dt1 :case_id << Data Type( Character ) <<
Set Modeling Type( "Nominal" );