Come modificare una colonna formula in una variabile?Sto usando una prima colonna formula come risultato intermedio, al fine di ricalcolare il risultato conclusivo con una seconda colonna formale. La seconda colonna utilizza il risultato dalla prima colonna della formula.
C'è un modo semplice per evitare la prima colonna della formula, creando ad esempio un varaibele? Mio Il knolodge JSL è molto semplice.
Grazie in anticipo.
Ri: Come cambiare una colonna formula in una variabile?Grazie per la tua risposta.
Potresti mostrarmi come combinare il colonna funzione quantile () con la versione matrix?
Ri: Come cambiare una colonna formula in una variabile?Come hai detto la formula If satement funziona molto bene per ottenere i valori NewDataCorr.
Ho aggiornato il tuo file con la nuova colonna: NewDataCorr 2. In questa colonna è stata utilizzata la formula della dichiarazione If. Invece di utilizzare i valori dalla colonna DataTmp, li ho espressi con la formula DataTmp:
Se (: P1 == 0 &: P2
,
: DataRaw
)
In questo caso ho eliminato la colonna DataTmp. Qual è la tua opinione su questa soluzione?
Ri: Come cambiare una colonna formula in una variabile?La soluzione di Cameron dovrebbe essere abbastanza veloce, anche su 100K + righe.
Un'altra cosa, con la funzione di quantile (), viene valutata per ogni riga nella formula della tabella di dati, e ciò rallenterebbe un po 'anche le cose. Nella versione matrix, viene valutata solo una volta.
Ri: Come cambiare una colonna formula in una variabile?Ho caricato il file example.jmp. La mia domanda specifica è, w hat è il modo migliore per evitare la creazione delle colonne: DataTmp e: FlyerTmp per ottenere le colonne: DataCorr con l'aiuto delle colonne: P1,: P2 e: DataRaw?
Secondo gli utenti JSL è meglio calcolare queste colonne con l'aiuto di liste o martize, specialmente se i set di dati sono grandi.
Ri: Come cambiare una colonna formula in una variabile?Grazie per il tuo suggerimento JSL. Sono curioso di testare la sceneggiatura. In questo momento non sono in grado di controllare questo (nessun accesso a JMP).
Mi chiedo in che modo i dati verranno trattati dalla colonna DataRaw di origine se sono 0?
Ri: Come cambiare una colonna formula in una variabile?Grazie per la tua risposta.
Voglio sbarazzarmi delle colonne di tmp per mantenere il set di dati il più semplice possibile. Il file di esempio è un file molto basilare riguardante la mia domanda. In pratica il set di dati contiene circa 10-15 diverse colonne DataRaw, che mi piace preparare allo stesso modo. Ci sono anche altre colonne differenti aggiunte.
Hai ragione riguardo alla colonna FlyerTmp. Può essere incluso nella colonna DataCorr. Controllerò il tuo file più tardi (nessun accesso a JMP adesso).
Ri: Come cambiare una colonna formula in una variabile?Ho solo pensato a qualcosa. Dovresti rimuovere gli zeri dalla temp prima di calcolare il quantile poiché quegli zeri saranno inclusi. Puoi farlo eseguendo questo prima di x98.
miss_rows = loc(as list(temp),0);
temp[miss_rows] = .;
Potresti fare lo stesso anche per "final" prima di creare la nuova colonna. Ciò eliminerebbe la necessità di sostituire i valori mancanti alla fine.
Ri: Come cambiare una colonna formula in una variabile?Grazie per aver pubblicato la tua tabella di dati di esempio.
Dato che vuoi calcolare quantili solo per alcune righe, devi disporre di una nuova colonna basata su una formula. Dal momento che lo stai già facendo con dataTmp è un ottimo modo per continuare. Tuttavia, non hai bisogno di flyerTmp poiché tutto ciò che sta facendo è un condizionale che poi usi in dataCorr. Puoi semplicemente inserire questa condizione direttamente in dataCorr.
L'ho fatto nella tabella dati allegata con 100.100 righe. È piuttosto veloce.
Sono curioso di sapere perché eri preoccupato di liberarti della colonna intermedia? Curiosità intellettuale o qualche altra preoccupazione?
Ri: Come cambiare una colonna formula in una variabile?Prova qualcosa di simile. L'idea sta facendo una moltiplicazione dei dati basata sull'elemento con i vettori di valori booleani, che sono le tue condizioni logiche. Dovrebbe essere piuttosto veloce, ma ammetto di non essere un esperto di ciò che sarà più efficiente dal punto di vista computazionale.
dt = Current Data Table();
//Get values for other columns
raw = dt:DataRaw << Get Values;
P1vals = dt:P1 << Get Values;
P2vals = dt:P2 << Get Values;
//Compute equivalent of DataTmp
temp = (P1vals == 0 & P2vals < 3):*raw;
//Compute 98th percentile of temp
x98 = quantile(0.98, temp);
//Compute final column
final = (temp <= x98):*temp;
dt << New Column("DataCorr", << Set Values(final));Il risultato avrà 0 invece che mancanti. Puoi sostituirli con valori mancanti con qualcosa di simile a questo (anche se hai ancora il DataCorr originale nella tua tabella, lo script precedente produrrà una colonna "DataCorr 2" e questa linea di codice non funzionerà nella colonna di destra).
//Replace 0s with missing
dt:DataCorr[dt << Get Rows Where(:DataCorr == 0)] = .;
Ri: Come cambiare una colonna formula in una variabile?Ciao Cameron ,
allegato il file example.jmp. Qual è il modo migliore per evitare la creazione delle colonne: DataTmp e: FlyerTmp per ottenere le colonne: DataCorr con l'aiuto delle colonne: P1,: P2 e: DataRaw?
Questo potrebbe essere applicabile a set di dati con oltre 100.000 righe.
Tommaso
Ri: Come cambiare una colonna formula in una variabile?Basta controllare un paio di dettagli:
1. il valore è lo stesso per tutte le righe nella prima colonna?
2. Stai scriptando l'aggiunta di colonne?
-Che cosa potrebbe essere possibile avere il primo risultato calcolato in memoria, come una singola colonna in una matrice, quindi, se si desidera quei valori, basta prenderli dalla matrice e creare una nuova colonna con quei valori. Spesso questo è più veloce dell'aggiunta di una colonna e degli aggiornamenti in corso nella tabella (per tabelle molto alte).
-Ma ancora, esegui entrambi i calcoli in una matrice (in memoria, non nella tabella) e quindi pubblica nuovamente i risultati nella tabella.
-Se tutti i valori sono uguali nella colonna 1, allora forse calcola questo in uno script e aggiungilo alla tabella dati come tabella
variabile e fare riferimento alla variabile nella colonna 2.
molte buone opzioni, ma dipendono tutte da quello che stai cercando di fare.
Ri: Come cambiare una colonna formula in una variabile?Dovrai pubblicare un esempio di lavoro se vuoi un aiuto più preciso.
Ri: Come cambiare una colonna formula in una variabile?Grazie per la soluzione. Funziona. Tuttavia, questo può rallentare il calcolo nel caso in cui alcuni stati vengano utilizzati all'interno della formula.
Ri: Come cambiare una colonna formula in una variabile?Puoi semplicemente copiare la formula dalla prima colonna e incollarla nella formula per la seconda colonna ovunque venga fatta riferimento alla prima colonna?