特定の文字列を含む列を選択して削除します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();
);
データのブレンディングとクリーンアップRe: 特定の文字列を含む列を選択して削除するそれは動作します ! 解決策をありがとう、Georg !Re: 特定の文字列を含む列を選択して削除する素晴らしい、完璧に動作します! ありがとう !Re: 特定の文字列を含む列を選択して削除するこんにちは、jthi さん、助けてくれてありがとう。 「ダミー」文字列の有無に関係なく、スクリプトは実際にはすべての列を削除することがわかりました。 とにかく、Georg と pauldeen はすでに解決策を提供しています。Re: 特定の文字列を含む列を選択して削除する追加のリスト変数の必要性を排除するためのわずかな変更:
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 );
)
);
Re: 特定の文字列を含む列を選択して削除するこれは、あなたにとって使いやすく、理解しやすいように修正されたバージョンです。
文字列がどこにあるかを確認するには、列をループする必要があります。
そして、選択と削除の使用法が正しくありませんでした。
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 );Re: 特定の文字列を含む列を選択して削除する「次を含む」では、一致の最初のインデックスのみが表示されます。 リストをループして削除する列を含むリストを生成することも、ループ中に削除することもできます。
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])
);
);Re: 特定の文字列を含む列を選択して削除する追加します...私がこれを質問している理由は、たとえば「_Dummy」を含む列が 50 個あるなど、多数の列名がある場合、名前を付けずに素早く削除するにはどうすればよいかを知りたいからです。 「dt << delete column(column("A_Dummy"))」などの既知の列削除コマンドを使用して、特定の列名を指定します。 このコマンドを使用する必要がある場合は、一意の列名をすべて 50 回入力する必要があります。