Salut,
J'ai un problème où j'ai tellement de colonnes que je veux sélectionner, mais je ne veux pas toutes les taper pour en créer un nouveau sous-ensemble.
Ce que j'ai, c'est 200 colonnes qui commencent toutes par la même chaîne. Je me demandais s'il y avait un moyen de sélectionner ces colonnes avec une boucle ou une commande.
J'ai essayé d'utiliser la ligne :
cols = dt << Get Column Names(Starts With("Year"));
Mais si j'obtiens juste chaque nom de colonne, et j'ai quelques colonnes qui ne commencent pas par "Année" ou même qui n'ont pas "Année" dans le nom. En ce moment, je crée un nouveau sous-ensemble des colonnes que je veux avec :
dt2 = dt << Subset(
All rows,
columns(
:Time,
:Day,
:Name("Year 1"),
:Name("Year 2"),
:Name("Year 3"),
.
.
.
etc.
),
output table name("All Years")
);
Il y a beaucoup d'autres colonnes dans mon tableau, mais je veux juste les séparer. S'il vous plaît aidez-moi!
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Merci PMroz, ça a très bien fonctionné !
Et c'est un joli blog Dave, merci pour le lien!
Ce code fera l'affaire.Beau blog Dave, au fait !
dt = New Table( "Year Example",
Add Rows( 3 ),
New Column( "ABC", Numeric, Continuous, Format( "Best", 12 ), Set Values( [1, 2, 3] ) ),
New Column( "DEF", Numeric, Continuous, Format( "Best", 12 ), Set Values( [4, 5, 6] ) ),
New Column( "Year 1", Numeric, Continuous, Format( "Best", 12 ), Set Values( [7, 8, 9] ) ),
New Column( "Year 2", Numeric, Continuous, Format( "Best", 12 ), Set Values( [10, 11, 12] ) ),
New Column( "Year 3", Numeric, Continuous, Format( "Best", 12 ), Set Values( [13, 14, 15] ) )
);
col_list = dt << get column names(string);
for (i = nitems(col_list), i > 0, i--,
if (!contains(col_list[i], "Year"),
remove from(col_list, i);
);
);
dt << Subset(
Output Table( "Year Subset" ),
All rows,
columns( eval(col_list) )
);