Suppression des colonnes qui ne sont pas dans une listeSalut les gars,
J'ai un ensemble de colonnes que je souhaite conserver, puis supprimer toutes les colonnes sauf cet ensemble.
Les colonnes que je souhaite supprimer sont nombreuses.
Existe-t-il un moyen simple de le faire à l’aide d’un script ?
Merci.Re : Suppression de colonnes qui ne sont pas dans une listeMerci ! Est-il possible de sous-ensembleer les colonnes correspondant à mes critères ?
Je souhaite extraire uniquement les colonnes contenant des mots-clés, et non pas uniquement les noms complets des colonnes (car j'ai beaucoup de données).Re : Suppression de colonnes qui ne sont pas dans une listeBonjour Dave, Merci pour votre aide. Super blog, au fait ! J'ai un très grand ensemble de données de plus de 8 000 colonnes, dont certaines à conserver, d'autres non. J'ai finalement utilisé un sous-ensemble sur les premières colonnes à conserver. J'ai ensuite exécuté une boucle sur le reste de la table pour conserver les colonnes correspondant à mes mots-clés, comme « _M ». Enfin, j'ai joint le sous-ensemble et la table que j'avais conservés avec des noms de colonnes correspondant à mes critères. Cela fonctionne correctement maintenant. Cependant, j'ai réessayé d'utiliser une liste dans le code ci-dessous, mais cela ne semble pas fonctionner. L'utilisation d'une liste est-elle interdite ? dt = Current Data Table(); // select data table dt << Set Name( "Raw_Data" ); dt << Subset( Columns( 1 :: 30 ), Rows( all ), Output Table( "Subset" ) ); // keep main columns names dt << Revert(); // Keep vt columns colList = Data Table( "Raw_Data" ) << Get Column Names( String ); For( i = N Cols( dt ), i >= 1, i--, If( !Contains( colList[i], "_M" ), //Ne conserver que les colonnes avec "_M"" dans le nom dt << Supprimer Column( Column( colList[i] ) ) ) );Re : Suppression de colonnes qui ne sont pas dans une listeDésolé, j'ai peut-être mal compris. Le code supprime des éléments de la liste, et non de la table. Cependant, la liste mise à jour peut être utilisée avec une commande « Sous-ensemble » pour générer une table de sous-ensembles contenant uniquement les colonnes qui vous intéressent.
Plus d'informations ici : http://www.pega-analytics.co.uk/blog/scripting-table-subsets/
Re : Suppression de colonnes qui ne sont pas dans une liste« Il y a un million de façons de faire les choses... » Talking Heads, « What A Day That Was », 1984
Si le nombre de colonnes à supprimer est vraiment important, il peut être plus efficace de sous-ensembleer la table avec toutes les lignes, en ne conservant que les colonnes de votre liste. Cela pourrait éviter de nombreuses suppressions itératives.
Votre candidature pourrait toutefois ne pas être si simple.
Re: Suppression des colonnes qui ne figurent pas dans une listeSalut Dave, merci pour ta réponse rapide à ma question. J'ai suivi ton exemple de code, mais il semble que les colonnes de ma liste apparaissent toujours dans mon tableau. Ai-je oublié quelque chose ? dt = Data Table( "temp" ); all = dt << Get Column Names( string ); vt = {"lot_id", "wf_id", "die_x"}; For( i = 1, i <= N Items( vt ), i++, pos = Contains( all, vt[i] ); If( pos > 0, Remove From( all, pos ) ); );Re : Suppression des colonnes qui ne sont pas dans une listeLégèrement différent, mais avec la même idée, le code suivant supprime les colonnes d' une liste. Plus précisément, vous avez une liste de colonnes ( tous ), et les éléments sont supprimés s'ils sont contenus dans la liste excl .
all = dt << Get Column Names(string);
// assume excl is a list of column names that i want to remove
For (i=1,i<=NItems(excl),i++,
pos = Contains(all,excl[i]);
If (pos>0,
RemoveFrom(all,pos)
)
);
Re : Suppression des colonnes qui ne sont pas dans une listeBonjour. Je parcourais cette discussion. J'ai trouvé le sujet très utile, mais je ne vois pas la solution. Il a dû être supprimé ou quoi ? Merci de bien vouloir le renvoyer. Merci !Re : Suppression des colonnes qui ne sont pas dans une listeCela pourrait fonctionner si vous n'avez que des éléments numériques (valeurs L). Cependant, c'est rarement le cas avec les noms de colonnes. Vous pourriez peut-être alterner entre noms et nombres en utilisant des tableaux associatifs de manière astucieuse.Re : Suppression de colonnes qui ne sont pas dans une listeMerci, ça a marché. J'aimerais que vous puissiez utiliser deux listes et soustraire/excéder l'une de l'autre.Re : Suppression de colonnes qui ne sont pas dans une listeParcourez toutes les colonnes pour créer une liste des colonnes que vous souhaitez supprimer, en comparant chaque colonne avec votre liste de gardiens.
Exemple