选择并删除包含特定字符串的列各位jsl大家好,
有人可以评论我下面的编码有什么问题吗? 我正在尝试查找包含名为“Dummy”的字符串的列并尝试将其删除,但它不起作用。 请帮忙。
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 );
If( Contains( cols, "Dummy" ),
dt << Select Columns();
dt << Delete Columns();
);
数据混合和清理回复:选择并删除包含特定字符串的列有用 ! 感谢您的解决方案,乔治!回复:选择并删除包含特定字符串的列太棒了,完美运行! 谢谢 !回复:选择并删除包含特定字符串的列嗨 jthi,感谢您的帮助。 我发现该脚本实际上删除了所有列,无论是否有“Dummy”字符串。 无论如何,Georg 和 pauldeen 已经提供了解决方案。回复:选择并删除包含特定字符串的列稍作修改即可消除对额外列表变量的需要:
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 );
For( i = N Items( cols ), i>=1, i--,
If( Contains( cols[i], "Dummy" ),
dt << Delete Columns( 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 );回复:选择并删除包含特定字符串的列包含只会给你匹配的第一个索引。 您可以循环列表以生成包含要删除的列的列表或在循环时删除:
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])
);
);回复:选择并删除包含特定字符串的列只是补充一下...我问这个的原因是因为我想知道是否有一堆列名,例如 50 列包含“_Dummy”,如何快速删除它而不必命名通过使用已知的删除列命令(例如“dt <<删除列(列(“A_Dummy”))”来指定特定列名称。 如果我必须使用此命令,那么我必须输入 50 次所有唯一的列名称。