SPLIT de haut en large : comment regrouper dynamiquement les colonnes résultantes ?J'ai donc un grand dt que je divise de TALL à WIDE. Cela génère une quantité énorme de colonnes, toutes avec le format d'en-tête = "Step#_Parameter_Function".
Le nombre de ces colonnes varie et n'est jamais prévisible ni défini, pas plus que les numéros ou les noms des étapes.
Comment pourrais-je regrouper ces colonnes par Step# ? Une sorte de boucle pour parcourir la longue liste de colonnes, sélectionner la première Step#, puis l'attribuer à un groupe intitulé « Step# » ?
<< Split(
Split By( :recipe_step_id, :parameter_name, :aggregate_function ),
Split( :value ),
Group( :recipe, :equipment_id, :chamber_id, :wafer_scribe, :wafer_process_start_time ),
Output Table( "Wide" ),
Remaining Columns( Drop All ),
Sort by Column Property
);

Fusion et nettoyage des donnéesPersonnalisation de masseRe : SPLIT de haut en large : comment regrouper dynamiquement les colonnes résultantes ?Voici un script simple qui crée un nouveau groupe de colonnes commençant par les caractères "NPN"

names default to here(1);
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNamesList = dt << get column names(string, continuous);
NPNList = {};
for(i=1,i<=nitems(colNamesList),i++,
If(contains(colNamesList[i],"NPN")==1,
insert into(NpNList,colNamesList[i])
)
);
dt << group columns("NPNGroup", NPNList);
Re : SPLIT de haut en large : comment regrouper les colonnes résultantes de manière dynamique ?incroyable. Une dernière question. Est-il possible de lui fournir une liste de groupes de chaînes de caractères à parcourir, à la recherche des colonnes qui correspondent, puis de les placer dans leurs groupes respectifs ?
comme une liste de :
colonnes commençant par « AAA », « BBB », « CCC », etc.
et ensuite les mettre dans des groupes étiquetés AAA, BBB, CCC
?
comment ignorer l'erreur s'il n'y a aucune colonne correspondant à BBB ?
Re : SPLIT de haut en large : comment regrouper les colonnes résultantes de manière dynamique ?- Veuillez prendre le temps de lire le Guide de script qui se trouve dans la bibliothèque de documentation JMP sous le menu déroulant Aide. Il vous fournira les structures de langage que vous pouvez utiliser pour résoudre des problèmes tels que celui que vous avez actuellement demandé.
- Vous trouverez ci-dessous un exemple de script simple qui crée des groupes de colonnes qu'il trouve. Veuillez noter qu'intentionnellement, aucune colonne ne commence par XYZ, même si le script le vérifie.
Names Default To Here( 1 );
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNameList = dt << get column names( string );
NPNList = {};
PNPList = {};
XYZList = {};
// Find matching column names
For( i = 1, i <= N Items( colNameList ), i++,
If(
Left( colNameList[i], 3 ) == "NPN",
Insert Into( NPNList, colNameList[i] ),
Left( colNameList[i], 3 ) == "PNP",
Insert Into( PNPList, colNameList[i] ),
Left( colNameList[i], 3 ) == "XYZ",
Insert Into( XYZList, colNameList[i] )
)
);
// If groups of columns are found, creat JMP groupings
If( N Items( NPNList ) > 0,
dt << select columns( NPNList );
dt << group columns();
);
If( N Items( PNPList ) > 0,
dt << select columns( PNPList );
dt << group columns();
);
If( N Items( XYZList ) > 0,
dt << select columns( XYZList );
dt << group columns();
);