DIVIDETE da alte a larghe: come raggruppare dinamicamente le colonne risultanti?Quindi ho un dt grande che sto dividendo da TALL a WIDE. Questo si traduce in un'enorme quantità di colonne, tutte con il formato dell'intestazione = "Step#_Parameter_Function".
La quantità di queste colonne varia e non è mai prevedibile o impostata, così come non lo sono i numeri o i nomi dei passaggi.
Come potrei raggruppare queste colonne per Step#? Una specie di ciclo per scorrere la lunga lista di colonne, selezionare il primo Step# e quindi assegnarlo a un gruppo etichettato "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
);

Fusione e pulizia dei datiPersonalizzazione di massaRe: SPLIT da alto a largo: come raggruppare dinamicamente le colonne risultanti?Ecco un semplice script che crea un nuovo gruppo di colonne che iniziano con i caratteri "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 da alto a largo: come raggruppare dinamicamente le colonne risultanti?- Prendetevi il tempo di leggere la Scripting Guide che si trova nella JMP Documentation Library nel menu a discesa Help. Vi fornirà le strutture linguistiche che potete usare per risolvere problemi come quello che avete chiesto in questo momento.
- Di seguito è riportato un semplice script di esempio che crea gruppi di colonne che trova. Si noti che, intenzionalmente, non ci sono colonne che iniziano con XYZ, anche se lo script le controlla
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();
);Re: SPLIT da alto a largo: come raggruppare dinamicamente le colonne risultanti?incredibile. Un'ultima domanda. È possibile fornirgli un elenco di gruppi di stringhe di caratteri da esaminare, cercando quelle colonne che corrispondono, quindi inserendole nei rispettivi gruppi?
come un elenco di:
colonne che iniziano con "AAA", "BBB", "CCC", ecc.
e poi metterli in gruppi etichettati AAA, BBB, CCC
?
come saltare un errore se non ci sono colonne che corrispondono a BBB?