可以從列表中重命名表中的所有列嗎?你好。 我想知道是否有一種方法可以在不使用 For 循環的情況下從列表中重命名表中的所有列。 我有大約 10k 列的表,並且使用 For 循環花費的時間比我想要的要長得多。
細節:
JMP 專業版 16.2.0
Mac 操作系統 大蘇爾 11.6.6
我研究了“重新編碼列名稱...”功能(“列”>“列名稱”>“重新編碼列名稱...”)。 在出現的對話框中,我可以選擇紅色向下三角形,然後選擇高級 > 應用表中的映射...。 假設我有一個包含原始列名和新列名的表,這看起來效果很好。 但是,似乎沒有辦法編寫此腳本。
我還嘗試過轉置表,添加具有新列名稱的新列,然後使用新列作為標籤重新轉置。 這也有效,但對於我這麼大的桌子來說太慢了。
有誰知道另一種不使用 For 循環的聰明方法?
大規模定制回复:可以從列表中重命名表中的所有列嗎?謝謝jthi。 是的,我必須承認,使用 For 循環比我記憶中要快得多。 我很久以前就嘗試過,記得當時覺得速度太慢了。 在詢問之前應該再試一次...
回复:可以從列表中重命名表中的所有列嗎?我覺得用循環重命名列不應該花那麼長時間。
Names Default To Here(1);
dt = New Table("test", invisible);
For(i = 1, i <= 10000, i++,
dt << New Column(Char(i*10), values(1::10000))
);
col_names = As List((1::10000)`);
wait(1);
start = HP Time();
For Each({col_name, idx}, col_names,
Column(dt, idx) << Set Name(char(col_name));
);
Show((HP Time() - start) / 1e6);回复:可以從列表中重命名表中的所有列嗎?執行此操作的一種交互式方法是將所有新列名稱複製到粘貼緩衝區中。

然後從數據表的列面板中選擇所有列。我建議你使用 CNTL/a 來選擇它們

然後使用 CNTL/v 從粘貼緩衝區粘貼到列名
