I cicli rilevati sono un grosso problema per il mio lavoro.Ciao comunità JMP
"Cicli rilevati" è un grosso problema (che si verifica frequentemente) a causa della simulazione di regole aziendali che NON sono cicliche in termini di righe. Tuttavia, JMP non è in grado di gestire una dipendenza a livello di riga molto semplice come invece può fare Excel. Francamente, non mi piace sentire che JMP non è un foglio di calcolo perché penso che una parte significativa degli utenti probabilmente abbia riscontrato questo tipo di problema. Combatto costantemente questo problema poiché i dati sono classificati per record (ad esempio data/ora) e come tali sono soggetti a record precedenti. Perché JMP fornirebbe la funzione di ritardo se non volessero semplificare la gestione delle operazioni a livello di riga (ed è fantastico, lo uso costantemente). Ma così facendo si apre il problema dei cicli rilevati e, anche in questo caso, dal punto di vista del foglio di calcolo, non ci sono conflitti. Excel può gestirlo facilmente, JMP no. Possiedo una licenza Pro e un feedback come questo al mio management superiore francamente non sarebbe eccezionale. Per me il vantaggio principale di JMP Pro è la facilità d'uso della modellazione complessa, della scienza dei dati e dell'apprendimento automatico sui big data. Il problema attualmente descritto riguarda la facilità d'uso dello strumento. Se non posso fare nient'altro, devo esportare da JMP in modo da poterlo fare con Excel (che è una seccatura)
Le mie intenzioni da questo post:
1- C'è qualcosa che posso fare per portare questo all'attenzione degli sviluppatori?
Per esempio Ho provato "Ignora errori" e "Ignora tutti i cicli" in modo indipendente: mi aspettavo che questi potessero aver aggirato i controlli necessari e forse avrebbero potuto consentire l'esecuzione delle formule (non è stato così)
2- Esiste un approccio basato su formule (anche se script, deve essere in una formula) che può essere utilizzato? Allego 2 esempi di seguito: stessi calcoli, uno in JMP e l'altro in xls.
A è un input libero col.
B si inizializza su A per record = 1 e quindi è A o il valore precedente di B (ovvero se stesso utilizzando la funzione lag) dipendente da C
C è A - valore precedente di B
Grazie.
Ingegneria della qualità e dei processiRe: I cicli rilevati sono un grosso problema per il mio lavoro.I miei parametri effettivi erano più complicati di quelli mostrati qui in questo semplice esempio. La soluzione di Julian è ugualmente accettabile, ma immagino che provare a mettere tutta la complessità in un'unica formula sarebbe troppo, quindi ho seguito la sceneggiatura di Craige (che ha funzionato).
Proverò a inviare una nota agli sviluppatori JMP in modo che (1) possano forse chiarire i punti "Ignora errori" e "Ignora tutti i cicli" - che ancora una volta a me - sembrano come se potessi bypassare un problema rilevato dai cicli, ma chiaramente no. (2) e forse possono prendere in considerazione la possibilità di dare a JMP un’opzione per bypassarlo se non esiste un vero ciclo ciclico.
Re: I cicli rilevati sono un grosso problema per il mio lavoro.Questo script produce la stessa risposta della tabella Excel e assomiglia molto alle formule delle colonne.
dt = Open( "/Z:/cyclic_error_sample.jmp" );;
dt:b<<DELETEFORMULA> 1,
dt:a - lag(dt:b);//
,//
.
);
dt:b = If( dt:record == 1,
dt:a;//
, //
If( dt:c < 1.5,
dt:a;//
, //
lag(dt:b)
)
);
);</DELETEFORMULA>
Lo script pone la valutazione di C prima della valutazione di B, riga per riga, a differenza delle formule di colonna JMP che valutano colonna per colonna. Mi ci è voluto un minuto fissando le tue formule per vedere che C deve prima valutare, perché dipende solo dalla riga precedente di B. Quindi B può valutare perché dipende dal valore C appena calcolato per la riga corrente.
Studiandolo un po' di più...basta copiare la formula C nella colonna B al posto di dt:C, in questo modo:
Removes the reference to column CRemoves the reference to column CRimuove il riferimento alla colonna C
Ciò ti consentirà di eliminare la colonna C se non ne hai veramente bisogno. Significa anche che le colonne verranno aggiornate automaticamente, a differenza del primo script che dovresti eseguire nuovamente.
Re: I cicli rilevati sono un grosso problema per il mio lavoro.CIAO @altug_bayram ,
Sembra un problema così frustrante da incontrare continuamente nel tuo lavoro! Sono d'accordo sul fatto che sembra che "Ignora tutti i cicli" dovrebbe fare come dice e lasciare che le formule procedano perché stai affermando a JMP che in realtà non esiste alcuna dipendenza. Sembra un difetto e il modo migliore per comunicarlo agli sviluppatori è inviare un'e-mail support@jmp.com spiegando il problema come hai fatto qui.
Come soluzione alternativa, la soluzione consiste nel non creare nemmeno il file aspetto di una dipendenza copiando l'intera formula per la colonna C e sostituendo i riferimenti a C con quella formula nella colonna B:

If( :Record == 1,
:A,
If( If( :Record > 1, :A - Lag( :B, 1 ), . ) < 1.5,
:A,
Lag( :B, 1 )
)
)
Puoi mantenere la formula per C così com'è e la tabella si popolerà perfettamente. Ciò non genera allarmi per un ciclo perché, in una singola formula, è chiaro a JMP che i riferimenti a B nella formula della colonna per B avvengono tramite Lag(). Sembra che quando le formule sono in colonne diverse, il rilevamento del ciclo non riesce a prendere in considerazione Lag() e vede solo B che fa riferimento a C che fa riferimento a B.

Spero che questo sia utile per il tuo lavoro fino a quando non sarà possibile risolvere il problema "Ignora tutti i cicli"!
@giuliano