Applicazione della formulaSE(MESE(A151)=MESE(A150),NA(),CONTA.SE(W151:W181,1)*100/(CONTA.SE(W151:W181,1)+CONTA.SE(W151:W181,0))) . Questa è una formula applicata in Excel per creare una nuova colonna, dove la colonna A ha la data e la colonna W contiene solo 0 e 1 come valori. Come applicare questa stessa formula in JMP se abbiamo valori delle colonne A e W.
Modellazione statistica avanzataRe: Applicazione della formulaEcco il modo in cui lo gestirei.
La funzione Loc() restituisce una matrice di tutti i valori nella matrice che corrispondono al secondo argomento nella funzione Loc(). Perciò
Dai una matrice
[1,0,1,1,.,5]
Poi
Loc( [1,0,1,1,.,5], 1 )
restituirebbe la matrice
[ 1, 1, 1 ]
quindi è semplice contare il numero di righe nella matrice per trovare CountIF
Length( Loc( [1,0,1,1,.,5], 1 ) )
che restituirà il valore 3
Ecco la formula completa
If( Month( :A ) == Lag( Month( :A ) ),
.,
wMatrix = :W[Index( Row(), Row() + 29 )];
(Length( Loc( wMatrix, 1 ) ) * 100) / (Length( Loc( wMatrix, 1 ) ) + Length( Loc( wMatrix, 0 ) ));
)
Tipicamente in JMP si cerca di evitare di avere calcoli basati su un numero specifico di righe nella tabella dati. Questa discussione attuale ne è un buon esempio. Affinché la formula precedente funzioni correttamente, la tabella dati richiede che vengano trovate esattamente 30 righe dopo il cambio di mese, su cui eseguire i calcoli. Sappiamo tutti che mesi diversi hanno numeri di giorni diversi. La seguente modifica alla formula precedente mostra come eseguire i calcoli in base alla ricerca di tutti i dati per il mese corrente, indipendentemente dal numero di giorni del mese
If( Month( :A ) == Lag( Month( :A ) ),
.,
wMatrix = :W[Current Data Table() << get rows where(
Year( :A ) == Year( :A[Row()] ) & Month( :A ) == Month( :A[Row()] )
)];
(Length( Loc( wMatrix, 1 ) ) * 100) / (Length( Loc( wMatrix, 1 ) ) + Length( Loc( wMatrix, 0 ) ));
)
Re: Applicazione della formulaPotresti fornire una tabella di esempio con tutte le colonne necessarie + la colonna dei risultati previsti come tabella JMP. Semplifica la comprensione del problema rispetto al tentativo di convertire la formula Excel senza dati nella formula JMP. Potresti semplicemente aver bisogno di qualcosa del genere
Somma cumulativa col(:W, :A) o Somma col.(:W, :A)
Re: Applicazione della formulaGrazie mille per la risposta Ho applicato questa formula ma fornisce una somma cumulativa, ma nel mio caso ogni volta che il mese cambia devo ottenere il conteggio di 0 e 1 per i prossimi 30 giorni
Ri: Applicazione della formulaCiao-
Avevo iniziato a rispondere e poi ho notato un altro post. Questo potrebbe essere un'alternativa...

appunti:
La funzione mese restituirà la parte relativa al mese di qualsiasi numero codificato con data/timestamp, proprio come la funzione Month() di Excel.
L'istruzione IF verificherà se la riga corrente non si trova sul confine del mese; questa operazione è impostata per restituire un valore JMP "Mancante", che potrebbe comportarsi in modo leggermente diverso da un NA() di Excel.
Poiché i valori erano codificati come 1 e 0, è stata calcolata semplicemente la media delle successive 30 righe anziché {Conteggio 1/(conteggio 0 + conteggio 1)}.
Quando si passa da formule orientate ai fogli di calcolo a tabelle di dati JMP con formule che agiscono come riferimenti relativi di Excel (ritardo, media mobile)...
* Esaminare attentamente il comportamento alle estremità superiore e inferiore per garantire il funzionamento previsto*. Un riferimento relativo di Excel alla "riga sopra" copiato nella prima riga restituirebbe un errore #Ref!. Un JMP Lag(1) restituisce un errore mancante nella prima riga. Si osservino anche le specifiche della media mobile di JMP quando il numero di righe rimanenti diventa <30... (potrebbe andare bene, basta tenere gli occhi aperti). È possibile intervenire su questo problema con una condizione aggiuntiva nelle formule di JMP. if (row()==1, elemento speciale per la prima riga, altrimenti utilizzare la funzione lag)
La descrizione non fornisce le motivazioni della progettazione della tabella, ma se l'intento è quello di trovare la porzione di 1 valore all'interno del mese corrente e si presume che ci saranno 30 righe al mese ordinate in ordine... esiste un altro approccio che sarà valido per # righe/mese <>30 e l'ordinamento delle righe... Con la colonna data/timestamp A selezionata: clic destro>nuova colonna formula>data/ora> "mese anno".
quindi crea una nuova colonna formula per trovare la "media" W per quel mese/anno Col Mean( :was_W, :"Month Year[was_A]"n ) * 100, condizione simile per trovare la riga di confine se necessario
Re: Applicazione della formulaLa tua richiesta non è chiara, ma penso di essere vicino a ciò che desideri - vedi file allegato. Ho creato una colonna di date casuali e poi le ho ordinate. La colonna W è un vettore casuale di valori 0 e 1. La formula conta la frazione dei valori 1 nei successivi 30 giorni dopo la modifica dei mesi. Se questo non è quello che desideri, puoi spiegarlo più chiaramente o pubblicare un semplice esempio. Ricorda, JMP non è un foglio di calcolo, quindi le formule di Excel come CountIF non sempre si traducono bene.
Re: Applicazione della formulaQuesto è ciò che pensavo facesse il mio esempio, e sembrava funzionare nel file che ho allegato. Vorrei capire come non ha funzionato, ma il tuo commento non fornisce alcuna informazione utile. Similmente alla tua richiesta iniziale, dovresti fornire qualche dettaglio in più in modo che possiamo capire cosa vuoi e come i suggerimenti non lo ottengano.