Problema nello script JMP per il cicloSalve, ho due domande:
Domanda1 --
Ho un dato semplice (allegato) e uno script che funziona bene ma fintanto che voglio convertirlo in un ciclo for. Non ottenere la cosa giusta.
OBIETTIVO - Voglio il valore di resistenza top10% per ogni corrente. I miei dati non sono simmetrici, significa che il numero di punti dati per ciascuna corrente è diverso.
Negli stessi dati ci sono solo 7 valori correnti e nei dati reali possono essere necessarie centinaia di valori.
Approccio: sto generando una tabella quantile e quindi confrontando il mio valore di resistenza con il valore quantile del 90% e aggiungendo una colonna aggiuntiva "Top10%". Tutto funziona bene per i dati di esempio con 7 valori correnti, ma ho bisogno di un ciclo per questo. I super utenti possono indicarmi qual è l'errore che sto facendo nel mio ciclo for, questo aiuterà a imparare come implementare i cicli for.?
Qualsiasi aiuto ?
Ques2 --Qual è il modo migliore per ottenere il 95% dei dati migliori?
Qualche aiuto qui?
Modellazione statistica avanzataAutomazione e scriptingEsplorazione e visualizzazione dei datiPersonalizzazione di massaQualità e ingegneria di processoRi: Problema nello script JMP per il cicloGrazie per la chiara e bella spiegazione. Molto utile per imparare come funzionano le formule di colonna. Grazie ancora.
Ri: Problema nello script JMP per il cicloPer quanto riguarda la logica del ciclo For()
- Una colonna può avere solo 1 formula.Avere la definizione Formula all'interno del ciclo For() specificherebbe una formula diversa per ciascun ciclo.Non so esattamente cosa farebbe JMP, nella migliore delle ipotesi sostituirebbe ogni formula quando ne viene creata una nuova, finendo con l'ultima creata.
- Impostando il valore "Fail" all'interno di ogni If, l'unica volta che la tua logica sarebbe accurata, è se Last Level è il livello per la riga corrente.Altrimenti, supponiamo che il livello 3 sia il livello corrente per la riga data.JMP imposta il valore nell'istruzione If per Level 1 su Fail, Level 2 su Fail, Level 3 su Top10%, ma il ciclo For() continua, quindi il test per Level 4 risulterà in Fail.... .....e tutto il resto dei livelli.
- Con una formula per una colonna che ha valori variabili definiti al di fuori della formula (ad esempio dtF2, dtQ e i riferimenti alle colonne nella tabella dati dtQ), quei valori e la tabella dati dovranno essere presenti ogni volta che la tabella dati con il la formula è aperta.Quindi quello che devi fare, quando usi tali formule, è eliminare la formula, una volta che la tabella dati ha eseguito la formula.
dtF2:Name("Top10%") << delete formula;
Ecco una versione della formula che penso funzionerebbe.....non l'ho testata, ma penso che vedrai l'approccio.
dtF2 << New Column( "Top10%",
character,
FORMULA(
For( i = 1, N Rows( dtQ ), i++,
x = "";
If( dtF2:Current == dtQ:Level[i] & dtF2:Name( "Res" ) >= dtQ:Name( "90%" )[i],
x = "Top10"
);
);
If( x == "", x = "Fail" );
x;
)
);Ri: Problema nello script JMP per il cicloSì, perfettamente bene. Modo molto migliore e più semplice per farlo. Non ero a conoscenza del fatto che possiamo ottenere anche quantili dalla tabella di riepilogo. Lo sto implementando nel modo che hai descritto.
A parte il quantile e i dati del 10% superiore, qualche commento su cosa c'era di sbagliato nel mio "ciclo for"?
Grazie per l'aiuto.
Ri: Problema nello script JMP per il cicloCredo che lo script seguente sia una metodologia più semplice per ottenere i risultati desiderati

Names Default To Here( 1 );
dtF2 = Data Table( "Final_Data" );
dtSum = dtF2 << Summary(
invisible,
Group( :Current ),
Quantiles( 90, :Res ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "stat" ),
link to original data table( 0 )
);
dtSum << delete columns( N Rows );
dtF2 << Update(
With( dtSum ),
Match Columns( :Current = :Current )
);
Close( dtSum, nosave );
dtF2 << New Column( "Top10%",
character,
formula( If( :Res >= :Quantiles90, "Top10" ) )
);