從列名的選擇中,如何修改生成的列名列表你好呀,
也許你可以幫我弄清楚我在這裡做錯了什麼。
我有以下玩具數據表:

我在改進由以下腳本生成的字符列名稱列表時遇到了一些麻煩。
//get unique column names
cols = Current Data Table() << getColumnNames(Character);
//del columns I don't want
DELCOLS = {"Column 5", "Column 6"};
unique_col_names = Associative Array(cols) << Remove(Associative Array(DELCOLS)) << get keys;
//make a pop-up window
nw = New Window( "Set a Value",
<<MODAL></MODAL>
我得到的是結果模態彈出窗口中的以下內容。

我希望以下彈出窗口僅包含以下內容:

我認為我的問題可能與我對關聯數組的知識差距有關,即使 JMP 腳本指南對關聯數組鍵以及 remove from、remove、loc 和 contains 函數的說明,我也無法完全理解它有道理。
我想確保我在模型窗口中使用的結果列表中保留的列可以由用戶在原始數據集中重命名,因此我要刪除的列名將保持不變。 此外,數據表中列的排列方式相同,但關聯數組按升序重新排列值。
根據這些論壇,我已經使用了以下方法,並且必須有一些我在這裡沒有看到的東西,因為我是 JSL 語言的新手。
- 從列表中刪除元素
https://community.jmp.com/t5/Discussions/remove-elements-in-a-list/td-p/50865
- 從列號中獲取列名並將我選擇的列輸入到要使用的列表中。
https://community.jmp.com/t5/Discussions/How-to-get-column-number-from-column-name-JMP/mp/5988
我附上了玩具數據集文件,其中包含我在上面引用的腳本。
數據表其他回复:從選擇的列名中,如何修改生成的列名列表這是我解決這個問題的方法
Names Default To Here( 1 );
//get unique column names
cols = Current Data Table() << getColumnNames( Character, string );
//del columns I don't want
DELCOLS = {"Column 5", "Column 6"};
For( i = 1, i <= N Items( DELCOLS ), i++,
Try( Remove From( cols, Contains( cols, DELCOLS[i] ) ) )
);
unique_col_names = cols;
//make a pop-up window
nw = New Window( "Set a Value",
<<MODAL></MODAL>回复:從列名的選擇中,如何修改生成的列名列表非常感謝! 它在我的項目中效果很好,我也了解了 Try() 函數是什麼。