Sélectionnez et supprimez les colonnes contenant une chaîne spécifiqueSalut les gens de jsl,
Quelqu'un peut-il commenter ce qui ne va pas avec mon codage ci-dessous? J'essaie de rechercher des colonnes qui contiennent une chaîne appelée "Dummy" et j'essaye de la supprimer mais cela ne fonctionne pas. Pls aider.
Noms par défaut ici (1);
dt = Nouvelle table ("Exemple",
Ajouter des lignes (3),
Nouvelle colonne ("A_Dummy", Character, "Nominal", Set Values ({"xx", "yy", "zz"})),
Nouvelle colonne ("B", caractère, "Nominal", Set Values ({"a", "b", "c"})),
Nouvelle colonne ("C_Dummy", Character, "Nominal", Set Values ({"l", "m", "n"})));
cols = dt << obtenir les noms de colonnes (chaîne);
Si (Contient (cols, "Dummy"),
dt << Sélectionner les colonnes ();
dt << Supprimer les colonnes ());
ScriptingRe: sélectionner et supprimer des colonnes contenant une chaîne spécifiqueJuste pour ajouter ... La raison pour laquelle je pose cette question est parce que j'aimerais savoir s'il y a un tas de noms de colonnes comme par exemple 50 colonnes qui contiennent "_Dummy", comment puis-je le supprimer rapidement sans avoir à nommer le noms de colonnes spécifiques en utilisant la commande de suppression de colonnes connue comme "dt << delete column (column (" A_Dummy "))". Si je dois utiliser cette commande, je devrais taper 50 fois tous les noms de colonnes uniques.
Re: sélectionner et supprimer des colonnes contenant une chaîne spécifiqueContient ne vous donnera que le premier index d'une correspondance. Vous pouvez soit faire une boucle sur la liste pour générer une liste avec des colonnes à supprimer ou supprimer pendant que vous bouclez:
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: sélectionner et supprimer des colonnes contenant une chaîne spécifiqueIl s'agit d'une version modifiée qui peut fonctionner pour vous et qui est facile à comprendre.
Vous auriez besoin d'une boucle sur les colonnes pour voir, où se trouve la chaîne de caractères,
et votre utilisation de sélectionner et supprimer n'était pas correcte.
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 );