选择和删除包含特定字符串的列嗨,jsl伙计们,
有人可以评论我下面的编码有什么问题吗? 我正在尝试查找包含名为“ Dummy”的字符串的列,并尝试将其删除但无法正常工作。 请帮助。
名称默认为Here(1);
dt =新表格(“示例”,
添加行(3),
新列(“ A_Dummy”,字符,“标称”,设置值({“ xx”,“ yy”,“ zz”}))),
新列(“ B”,字符,“标称”,设置值({“ a”,“ b”,“ c”})))),
新列(“ C_Dummy”,字符,“标称”,设置值({“ l”,“ m”,“ n”})))));
cols = dt <<获取列名(字符串);
如果(包含(cols,“虚拟”),
dt << Select Columns();
dt << Delete Columns());
脚本编写回复:选择和删除包含特定字符串的列只是添加...我问这个的原因是因为我想知道是否有一堆列名,例如50个包含“ _Dummy”的列,我如何在不命名的情况下直接删除它通过使用已知的删除列命令(例如“ dt <<删除列(column(“ A_Dummy”)))”来指定特定的列名称。 如果必须使用此命令,则必须输入所有唯一列名称的50倍。
回复:选择和删除包含特定字符串的列包含只会给您匹配的第一个索引。 您可以在列表上循环以生成带有要删除的列的列表,或者在循环时删除:
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 3 ),
New Column( "A_Dummy", Character, "Nominal", Set Values( {"xx", "yy", "zz"} ) ),
New Column( "B", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "C_Dummy", Character, "Nominal", Set Values( {"l", "m", "n"} ) ));<BR />
cols = dt << get column names( string );
for(i = 1, i <= N Items(cols), i++,
If(Contains(cols[i],"Dummy"),
dt << Delete Columns(cols[i])
);
);回复:选择和删除包含特定字符串的列这是一个修改后的版本,可能对您有用,并且很容易理解。
您需要在各列之间循环查看字符串所在的位置,
并且您选择和删除的用法不正确。
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 3 ),
New Column( "A_Dummy", Character, "Nominal", Set Values( {"xx", "yy", "zz"} ) ),
New Column( "B", Character, "Nominal", Set Values( {"a", "b", "c"} ) ),
New Column( "C_Dummy", Character, "Nominal", Set Values( {"l", "m", "n"} ) )
);
cols = dt << get column names( string );
delete_lst = {};
For( i = 1, i <= N Items( cols ), i++,
If( Contains( cols[i], "Dummy" ),
Insert Into( delete_lst, cols[i] )
)
);
dt << Delete Columns( delete_lst );