Seleziona le colonne in base alle parole contenute nell'intestazioneHo un'analisi che vorrei eseguire ma ho bisogno di selezionare diverse colonne in base alle parole contenute nell'intestazione prima di poterlo fare, attualmente lo faccio manualmente ma questo è dolorosamente lento e posso perdere alcune colonne se io' Non sono attento.
nell'esempio dell'immagine vorrei selezionare le 2 colonne che iniziano con "Quali colori" ma nessuna delle altre 4. Possono essere distribuiti tra altre colonne e il loro numero sarà diverso per esperimento. Una volta selezionati posso quindi estrarli ed eseguire l'analisi.
Questo deve essere fatto automaticamente senza alcun input dell'utente coinvolto e non riesco a trovare alcun jsl che lo faccia ma sono sicuro che deve esistere, è solo che non sono riuscito a trovarlo o non conosco il corretto termine di scripting.

Saluti
Davide
Tabella datiAltroScriptingOggetto: Seleziona colonne in base alle parole contenute nell'intestazioneGrazie!Oggetto: Seleziona colonne in base alle parole contenute nell'intestazioneLa funzione Contains() non restituisce un valore booleano pari a 0 o 1, restituisce la posizione del carattere in cui è stato trovato il confronto.
Prova a usare
Contains( colList[i], "N" ) > 0
Oggetto: Seleziona colonne in base alle parole contenute nell'intestazioneSto cercando di utilizzare questo script per selezionare colonne che contengono una stringa all'interno del nome della colonna.Quando inserisco "P" o "PN" in contains() funziona, ma non quando inserisco "N" o "NP" o "NP3".
Grazie
For( i = 1, i <= N Items( colList ), i++,
If(
// Put in any selection criteria you want
//Left( colList[i], 2 ) == "PN" ,
// or it could be
Contains( colList[i], "N" ) == 1
,
Column( dt, colList[i] ) << set selected
)
);
Oggetto: Seleziona colonne in base alle parole contenute nell'intestazionegrazie mille, funziona perfettamente
Oggetto: Seleziona colonne in base alle parole contenute nell'intestazioneNon credo che questo aggiunga nulla dato il requisito "nessun input da parte dell'utente". Ma volevo cogliere l'occasione per menzionare che il filtraggio delle colonne è piuttosto utile quando si lavora in modo interattivo (ed è facile trascurare). A volte le persone usano gli script perché pensano che sia "difficile" tramite l'interfaccia utente.
Il 'Filter Col Selector' è anche scriptabile:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example", fcs = Filter Col Selector( DataTable("Big Class") ));
// See what messages the 'Filter Col Selector' understands
ShowProperties(fcs);
// Try it out
Print(fcs << GetItems);
Wait(3);
fcs << NameContains("ei");
Print(fcs << getItems);Oggetto: Seleziona colonne in base alle parole contenute nell'intestazioneEcco un modo molto semplice di fare ciò che stai richiedendo ed è espandibile in requisiti molto più complessi
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colList = dt << get column names( string );
dt << clear column selection;
For( i = 1, i <= N Items( colList ), i++,
If(
// Put in any selection criteria you want
Left( colList[i], 2 ) == "PN" ,
// or it could be
// contains( colList[i], "PN") == 1,
Column( dt, colList[i] ) << set selected
)
);
If( N Items( dt << get selected columns ) > 0,
dtSelected = dt << subset( selected rows( 0 ), selected columns( 1 ) )
);