从列名选择中,如何修改生成的列名列表你好呀,
也许你可以帮我弄清楚我在这里做错了什么。
我有以下玩具数据表:

我在精炼来自以下脚本的字符列名称列表时遇到了一些麻烦。
//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 脚本编写指南介绍了关联数组键以及删除、删除、定位和包含函数,我也无法完全理解它合理。
我想确保模型窗口中使用的结果列表中保留的列可以由原始数据集中的用户重命名,因此我要删除的列名称将保持不变。 此外,数据表中列的排列是相同的,但关联数组按升序重新排列值。
根据这些论坛,我已经使用了以下方法,并且一定有一些东西我在这里没有看到,因为我是 JSL 语言的新手。
- 从列表中删除元素删除列表中的元素
- 从列号获取列名称并将我选择的列输入到要使用的列表中。如何从列名获取列号? (JMP)
我已附上玩具数据集文件,其中包括我上面引用的脚本。
自动化和脚本编写回复:从列名选择中,如何修改生成的列名列表非常感谢! 它在我的项目中效果很好,我也了解了 Try() 函数是什么。
回复:从列名选择中,如何修改生成的列名列表这是我解决这个问题的方法
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>