選擇並刪除包含特定字符串的列各位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 次所有唯一的列名稱。