Come salvare una colonna di valori da un report per un uso successivo<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Sto cercando di sviluppare uno script per automatizzare diverse attività di analisi dei dati. Uno di questi è quello di trovare automaticamente la distribuzione di un set di dati e quindi eseguire una simulazione con i parametri di quella distribuzione.
Ho molti pezzi in ordine salvo che non sono sicuro di come usare i parametri che ho salvato dalla distribuzione nella simulazione di Profiler.
Dopo il codice di distribuzione, salverò i parametri come segue:
parameterOne = distReport [ "Complessivamente YA-P20" ] [ outlinebox ( "?" || distNameOne )] [ "Stime dei parametri" ] [ NumberColBox ( 1 )] ;
questo salverà tutti i valori per l'intera colonna ?? So che se uso ... [ NumberColBox ( 1 )] [ 1 ] ; salverà la prima riga, come si salvano i valori per un numero sconosciuto di righe?
Seconda domanda: posso semplicemente usare questa variabile "parameterOne" nel profiler come tale ...
Eval (Parse (EvalInsert ( "\ [
Profiler (
Y (colonna (3)),
Profiler (
1,
Termine Valore (
Nome ("Overall YA-P20") (227.01),
Nome ("Overall XB-P2") (324.6375)
),
Simulatore(
1,
fattori (
Nome ("Overall YA-P20") << Casuale (
^ ^ DistNameOne ( parameterOne )
),
Nome ("Overall XB-P2") << Casuale (
^ distNameTwo ^ (parameterTwo)
)
),
Risposte (Combinato << Nessun rumore)
)
)
)
] \ ")));
Ho provato a farlo senza successo. Nessun codice di errore, ma il profiler non sta utilizzando i parametri corretti.
Grazie per il tuo aiuto e la tua pazienza con le mie abilità in jsl.
Ri: Come salvare una colonna di valori da un report per un uso successivoFantastico, grazie! Tutto ha funzionato.
Come salvare una colonna di valori da un report per un uso successivoOK, capisco il problema. È possibile utilizzare il seguente codice per creare una rappresentazione di stringa dell'elenco di parametri:
mat = colBox << Ottieni come Matrix;
strValues = "";
Per (i = 1, i <= NRows (mat), i ++,
strValues = strValues || Char (mat ) || ""
);
e quindi inserisci questa variabile nel comando:
...
Fattori (altezza << Random (^ dist ^ (^ strValues ^))),
...
Tecnicamente la variabile strValues risulta in una virgola aggiuntiva alla fine dell'elenco. Questo potrebbe essere rimosso, ma JMP perdona le virgole ridondanti e il codice funziona così com'è.
Ri: Come salvare una colonna di valori da un report per un uso successivoCiao Dave
Capisco che tutti i parametri sono memorizzati in NumColBox (1), ma il motivo per cui lo faccio riferimento due volte perché sto facendo riferimento ai parametri di 2 diversi rapporti di distribuzione.
Il mio problema principale è che il numero di parametri cambia a seconda del tipo di distribuzione. Quindi potrei avere 1, 2 o più parametri a seconda dei dati (normale, Weibull, ecc ...). Quindi non posso usare il codice che hai fornito sopra perché questo presuppone che avrò sempre 2 parametri. C'è un modo per utilizzare gli oggetti all'interno della matrice di una dimensione sconosciuta ??
Come salvare una colonna di valori da un report per un uso successivoLe stime dei parametri sono contenute nella casella di visualizzazione NumColBox (1). Hai solo bisogno di fare riferimento a questo una volta. Il messaggio Ottieni come Matrix recupera tutte le stime dei parametri come una singola raccolta. È quindi necessario fare riferimento a elementi specifici all'interno di questa matrice:
Apri ("$ SAMPLE_DATA / Big Class.jmp");
dist = Distribuzione (
Distribuzione continua (
Colonna (: altezza),
Fit Distribution (Weibull)
)
);
distR = dist << report;
parameterEstimates = distR [NumberColBox (1)];
matParameters = parameterEstimates << Get As Matrix;
parameter1 = matParameters [1];
parameter2 = matParameters [2];
mostra (matParameters, Parametro1 parameter2);
Ri: Come salvare una colonna di valori da un report per un uso successivoGrazie per l'aiuto.
Ora sto salvando i dati correttamente come una matrice, tuttavia quando provo ad usarlo nel profiler sta usando i numeri sbagliati ancora ...
matrixParameterOne = parameterOne << Ottieni come Matrix ;
matrixParameterTwo = parameterTwo << Ottieni come Matrix ;
// Esegui la simulazione
Eval ( analizzare ( EvalInsert ( "\ [
Profiler (
Y (colonna (3)),
Profiler (
1,
Termine Valore (
Nome ("Overall YA-P20") (227.01),
Nome ("Overall XB-P2") (324.6375)
),
Simulatore(
1,
fattori (
Nome ("Overall YA-P20") << Casuale (
^ distNameOne ^ (^ matrixParameterOne ^)
),
Nome ("Overall XB-P2") << Casuale (
^ distNameTwo ^ (^ matrixParameterTwo ^)
)
),
Risposte (Combinato << Nessun rumore)
)
)
)
] \" ))) ;
Qualche idea su questo?
Ri: Come salvare una colonna di valori da un report per un uso successivoPer quanto riguarda il salvataggio dei parametri; è possibile creare un riferimento alla casella di visualizzazione e quindi inviare messaggi ad essa, ad esempio:
Apri ("$ SAMPLE_DATA / Big Class.jmp");
dist = Distribuzione (
Distribuzione continua (colonna (: altezza), adattamento distribuzione (normale))
);
distR = dist << report;
colBox = distR [NumberColBox (1)];
mat = colBox << Ottieni come Matrix;
mostra (mat)
Per la seconda domanda, per sostituire le variabili nella valutazione si usa la notazione ^ nome ^ nello stesso modo in cui si ha per il nome della distribuzione, ad es.
Nome ("Overall YA-P20") << Casuale (
^ ^ DistNameOne ( ^ ^ ParameterOne )
),
-Dave