Salut,
Je suis nouveau dans les scripts JSL. Je souhaite empiler des colonnes provenant du même nom commun (jusqu'à une certaine longueur). Comme j'ai le nom de colonne "66_CORR_B1_W00", "66_CORR_B1_W01" et ainsi de suite jusqu'à "66_CORR_B1_W12". Ils doivent être dans une seule colonne nommée ""66_CORR_B1". Et cela se répétera pour un autre nom de groupe de colonnes commençant par "66_CORR_B2". Il pourrait y avoir 20 groupes de ces colonnes. Enfin, je veux 20 colonnes provenant de 20 groupes de colonnes.
Ici, je joins un exemple de tableau de données.
Merci d'avance.
Mohammed Rahman
Vous trouverez ci-dessous un script qui fonctionne pour les exemples de données que vous avez inclus dans votre entrée de discussion initiale.
Names Default To Here( 1 );
dt = Data Table( "Sample_data" );
ColList = dt << get column names( string, numeric );
// Loop across the column names and find only the
// columns desired
For( i = N Items( ColList ), i >= 1, i--,
If( Contains( ColList[i], "66_CORR_B" ) == 0,
ColList = Remove( ColList, i, 1 )
)
);
// Sort the columns to ensure they are in the correct order
// for the contiguous stacking
ColList = Sort List( ColList );
// Stack the data
Data Table( "Sample_data" ) << Stack(
columns( ColList ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Number of Series( 2 ),
Contiguous
);
Le script est très basique, dans le sens où il ne vérifie pas les situations dans lesquelles il n'y a pas le même nombre de colonnes pour chaque groupe, les colonnes à sélectionner ne suivent pas un très bon ensemble de noms.
Mais cela devrait vous donner une idée de la façon de procéder