CIAO,
Sto cercando di selezionare tutte le righe con il valore 1 nella colonna Violazione, estrarre il valore della colonna Dispositivo, quindi escludere tutte le righe associate a tali dispositivi.Qualcuno può aiutarmi a inventare una sceneggiatura?Grazie!
Di seguito è riportato uno script che eseguirà questa azione
Names Default To Here(1);
dt = Current Data Table();
dt << Clear Row States;
violation_rows = dt << Get Rows Where(:Violation == 1);
violation_devices = Associative Array(dt[violation_rows, "Device"]) << get keys;
dt << Select Where(Contains(violation_devices, :Device)) << Exclude(1) << Clear Select;
- Ottieni i numeri di riga dove :Violation == 1
- Utilizzare l'indice della tabella dati e l'array associativo per ottenere i dispositivi
- Seleziona le righe con quei dispositivi ed escludili
Puoi farlo facilmente anche in modo interattivo (e questo verrà registrato dal registro avanzato):
- Creare una tabella di riepilogo con Dispositivo come gruppo e Violazione come sottogruppo. Assicurati anche che le tabelle siano collegate
- Selezionare 0 valori da N(1) (indica dove Convalida == 1) e quindi fare clic con il tasto destro sulle righe per invertire la selezione
- Ora hai i dispositivi selezionati nella tua tabella principale
- Ora puoi escludere queste righe
JMP ti creerà uno script come questo
// Open Data Table: Sample(1).jmp
// → Data Table("Sample(1)")
Open("$DOWNLOADS/Sample(1).jmp");
// Data table summary
// → Data Table("Sample(1) By (Device)")
Data Table("Sample(1)") << Summary(Group(:Device), N, Subgroup(:Violation), Freq("None"), Weight("None"));
// Select matching cells
Data Table("Sample(1) By (Device)") << Select Where(:"N(1)"n == 0);
// Invert current selection
Data Table("Sample(1) By (Device)") << Invert Row Selection;
// Toggle selected rows' exclude state
Data Table("Sample(1) By (Device)") << Select Where(:"N(1)"n == 0) << Invert Row Selection << Exclude;
// Close Data Table: Sample(1) By (Device)
Close(Data Table("Sample(1) By (Device)"), NoSave);
e con alcune piccole modifiche sarà uno script abbastanza robusto da usare in futuro (usa le variabili invece dei nomi delle tabelle, avvialo con Names Default To Here(1)... per menzionare alcune modifiche).
Grazie per la pronta risposta. Hai appena reso la mia giornata!