特定の文字列を含む列を選択して削除しますこんにちはjslの人々、
以下の私のコーディングの何が問題になっているのか誰かがコメントできますか? 「ダミー」という文字列を含む列を探して削除しようとしていますが、機能しません。 plsは助けます。
名前のデフォルトはHere(1);
dt = New Table( "Example"、
行を追加(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 <<列名を取得(文字列);
If(Contains(cols、 "Dummy")、
dt << Select Columns();
dt << Delete Columns());
スクリプティングRe:特定の文字列を含む列を選択して削除します追加するだけです...これを尋ねる理由は、たとえば「_Dummy」を含む50列のような列名がたくさんあるかどうかを知りたいのですが、名前を付けずにすばやく削除するにはどうすればよいですか? 「dt << delete column(column( "A_Dummy"))」のような既知のdeletecolumnsコマンドを使用した特定の列名。 このコマンドを使用する必要がある場合は、すべての一意の列名を50倍入力する必要があります。
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:特定の文字列を含む列を選択して削除しますこれはあなたのために働くかもしれないそしてそれが理解しやすい修正されたバージョンです。
文字列がどこにあるかを確認するには、列をループする必要があります。
選択と削除の使用法が正しくありませんでした。
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 );