Equivalente JMP della funzione CONTA.SE di ExcelSto cercando di imitare questo comportamento di tipo Excel:
| | A | B |
| 1 | tipo di errore | numFailuresThisType |
| 2 | la1 | =contase($a$2:$a$999,a2) |
| 3 | f2 | =conta.se($a$2:$a$999,a3) |
| 4 | la prima | =conta.se($a$2:$a$999,a4) |
| 5 | la prima | =conta.se($a$2:$a$999,a5) |
| 6 | f2 | =conta.se($a$2:$a$999,a6) |
| ... | ... | ... |
... in JMP. È possibile come formula di colonna?
Ho provato "Col Sum( :failureType == :failureType[ Row() ] )" ma non funziona e non capisco perché. A volte ":ColumnName" restituisce un singolo valore, altre volte restituisce l'intera colonna di voci e le esegue automaticamente in loop. C'è un modo per sapere cosa farà, magari dall'indice di scripting?
Analisi e modellazione dei dati di baseRe: Equivalente JMP della funzione CONTA.SE di Excel
Forse Col Somma di 1 per tipo di errore?
Col Sum(1, :FailureType)
Qui la colonna 6 ha la formula Col Sum(1, :age)

Re: Equivalente JMP della funzione CONTA.SE di ExcelSì, probabilmente funzionerà.
Perché il mio Col Sum(...) non ha funzionato? Anche Row() viene aggiornato internamente a ogni passaggio?
Re: Equivalente JMP della funzione CONTA.SE di ExcelCrea una colonna con solo Row() e vedrai cosa restituisce

Puoi fare la stessa cosa per
:failureType[Row()]
e per
:failureType
e infine per
:failureType == :failureType[Row()]
per vedere cosa otterrai (stai confrontando il valore della riga corrente del tipo di errore con il valore della riga corrente del tipo di errore con una sintassi diversa, che è quasi sempre 1).
Re: Equivalente JMP della funzione CONTA.SE di ExcelUn'altra opzione è Col Number()
Col Number(:FailureType, :FailureType)
Re: Equivalente JMP della funzione CONTA.SE di ExcelQueste risposte hanno risposto direttamente alla tua domanda su una funzione che funziona come Excel. Puoi anche usare Tabella > Riepilogo, Analizza > Tabula e Grafico > Generatore grafico per i riepiloghi senza usare una colonna formula, se è lì che vuoi arrivare.
Re: Equivalente JMP della funzione CONTA.SE di ExcelAnche questa formula sembra funzionare:
Names Default to Here(1);
n1 = :failureType;
Col Sum( :failureType == n1 )
Sembra che all'interno della funzione Col Sum ci si aspetti di iterare su liste, in modo simile a un ciclo for in python su variabili compresse, ma nella seconda riga, sta solo ottenendo il valore di :failureType dalla riga corrente. Questi tipi di comportamenti impliciti sono incredibilmente utili/utili, ma solo se l'utente capisce come funzionano.
Re: Equivalente JMP della funzione CONTA.SE di ExcelWow. Un po' sorprendente. Non mi aspettavo che funzionasse in questo modo.
Come lo hai scoperto?
Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "ColSum1",
Formula(
Col Sum( :age == 12 );
)
);
New Column( "ColSum2",
Formula(
twelve = 12;
Col Sum( :age == twelve );
)
);
New Column( "ColSum3",
Formula(
myAGE = :age;
Col Sum( :age == myAGE );
)
);
New Column( "ColSum4",
Formula(
myAGE = :age;
myname= :name;
Col Sum( show(myname,myAge,:name,:age,"-");:age == myAGE );
)
);
Re: Equivalente JMP della funzione CONTA.SE di Excelpost correlato con alcuni parallelismi: Countif equivale?
ma senza la magia di @BHarris : )
Re: Equivalente JMP della funzione CONTA.SE di ExcelAnche se sembra che funzioni, non lo userei (penso che andrebbe bene se richiedesse di avere :failureType come byvar). Penserei che sia una specie di comportamento indesiderato (anche più dell'uso di 1 che non dovrebbe essere consentito secondo il supporto JMP, ma speriamo che JMP non lo rompa mai
Utilizzare le espressioni delle formule in Imposta ogni valore e utilizzare le espressioni come primo argomento nelle formule statistiche Col (comportamento supportato ).
Potresti segnalarlo al Supporto JMP e provare a vedere se possono darti una spiegazione tecnica sul perché funziona come funziona. Puoi anche provare a usare altri confronti in modo simile

Re: Equivalente JMP della funzione CONTA.SE di Excel@hogi Probabilmente non è così magico come sembra: il primo argomento di Col Sum è un'espressione e, in questo caso, poiché n1 è precalcolato (probabilmente impostato sul valore della riga corrente a causa del contesto), e le espressioni == sembrano restituire 1 o 0, si tratta semplicemente di sommare un mucchio di 1 dove il valore della colonna è uguale a n1 e 0 altrimenti.
Ciò che per me è un po' magico è che a volte nelle formule di colonna, JMP itera sulle righe in una colonna quando viene immesso come ":columnName" e altre volte estrae solo il valore da quella colonna nella riga corrente. Questo è stato un mistero per me da quando ho discusso su quell'altro thread.
Immagino che la funzione Col Number() sia la più appropriata da usare in questo caso, probabilmente memorizza nella cache in modo più pulito rispetto a questa.
Francamente, non sapevo che esistesse Col Number(). Ho trascorso la maggior parte della mia vita adulta su Excel, quindi vorrei tanto che ci fosse da qualche parte una mappatura delle funzioni di Excel alle funzioni JMP.
Re: Equivalente JMP della funzione CONTA.SE di ExcelNew Column( "ColSum4",
Formula(
myAGE = :age;
myname= :name;
Col Sum( show(myname,myAge,:name,:age,"-");:age == myAGE );
)
);
è abbastanza esemplificativo. Col cumulativo si comporta un po' diversamente da come pensavo si comportasse.
Ho pensato che Col Sum valutasse l'argomento una volta e poi raggruppasse/raccogliesse i risultati in base a groupBy.
Ma in realtà:
La formula viene valutata per ogni riga, in totale 40x per le righe RWx.
E a ogni iterazione, Col Sum valuta il suo argomento 40 volte, per ogni riga RWy.
Immagino che provi a memorizzare nella cache il risultato e non valuti nuovamente l'argomento per altri RWx se può essere sicuro che sarà lo stesso risultato.
Ma nel caso di Show() o :age = myAGE, la valutazione deve essere ripetuta più e più volte.
-> in totale 40 x 40 volte.
quindi, ad esempio, per la riga RWx = 3 (myName = Jane), valuta l'argomento 40 volte.
E per 8 delle 40 RWy, :age == myAge risulta in 1. Quindi Col Sum è 8 per la riga 3.
Di conseguenza, Col Sum è 3 per la riga 40.
Re: Equivalente JMP della funzione CONTA.SE di Excel
@jthi ha scritto:
Anche se sembra che funzioni, non lo userei (penso che andrebbe bene se richiedesse di avere :failureType come byvar). Penserei che sia una specie di comportamento indesiderato (anche più dell'uso di 1 che non dovrebbe essere consentito secondo il supporto JMP, ma speriamo che JMP non lo rompa mai
Utilizzare le espressioni delle formule in Imposta ogni valore e utilizzare le espressioni come primo argomento nelle formule statistiche Col (comportamento supportato ).
Mi sento anche molto più sicuro se una funzionalità è documentata, ovvero protetta in qualche modo da una rimozione improvvisa...
JMP deve scoprire se è OK mettere in cache i risultati. Chi conosce la logica?
In questo caso, JMP ritiene che sia corretto utilizzare i dati memorizzati nella cache:
t0 = hptime();
New Column( "test",
Formula(
wait(0.1);
Col Sum( hp time() )
),
);
current data table() << run formulas();
show((hptime()-t0)/1000000)
Re: Equivalente JMP della funzione CONTA.SE di Excel@BHarris
@BHarris ha scritto:
a volte nelle formule di colonna, JMP itererà sulle righe in una colonna quando immesso come ":columnName"
Puoi fare un esempio?
Re: Equivalente JMP della funzione CONTA.SE di ExcelCerto, apri BigClass.jmp e aggiungi una colonna con questa formula:
Col Sum ( :altezza * :peso, :sesso )