根據表名的內容將變數分配給表。我有多個開啟的表,需要根據表名的包含(DC1,DC2,DC3)分配變數。如果表名包含DC1分配dt1,如果表名包含DC2分配dt2....
表1: ABC_25C_DC1_2024
表2: ABC_25C_DC2_2024
表3: ABC_25C_DC3_2024
這是我嘗試使用的命令列。
tablelist = 取得資料表列表() << 取得名稱;
如果(包含(連接項目(表格清單),「DC1」),
dt2= XXXXXXXXX
);
基礎資料分析與建模回覆:根據表名的包含將變數指派給表。你如何打開這些表?你能在這個過程中創建參考嗎?我還將它們存儲到一個列表中,而不是嘗試為它們使用單獨的 dt1、dt2、dt3...。
回覆:根據表名的包含將變數指派給表。它們是由我無權訪問的其他一些自動化 JMP 腳本創建的。
回覆:根據表名的包含將變數指派給表。如果你能 100% 確定這些名字,那麼我會把它們儲存到一個清單中
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
New Table("ABC_25C_DC1_2024");
New Table("ABC_25C_DC2_2024");
New Table("ABC_25C_DC3_2024");
tablelist = Get Data Table List() << get name;
dc_tables = {};
For Each({tablename}, tablelist,
If(Starts With(tablename, "ABC_25C_DC"), // some pattern to catch correct tables
Insert Into(dc_tables, Datatable(tablename));
);
);
然後您可以使用 dc_tables[1] 等來存取它們。
回覆:根據表名的包含將變數指派給表。
我希望這能進一步澄清我想要實現的目標。

回覆:根據表名的包含將變數指派給表。我不認為這為我提供了任何額外的說明,期望您可以捕獲最後一個 _ 之後的表“類型”。如果您可以從末尾(最後一個 _ 之後)捕獲表“類型”,您可以使用關聯數組(或仍然是列表)。您可以使用 Word 擷取姓名的最後部分
Names Default To Here(1);
str = "ABC_25C_DC1_2024";
last_part = Word(-1, str, "_");
最終的想法仍然是相同的,找到某種方式獲取對錶的引用,將它們存儲到某種數據結構(列表或關聯數組)中,在需要時使用索引(列表)或鍵(關聯數組)從該資料結構中取得表格)。