Ri: Come utilizzare "dichiarazioni condizionali" per selezionare le righe di dati da eseguire, ad esempio, semplice Col A - Col CGRAZIE DI CUORE A: Sarah Seligman, supporto tecnico SAS per aver fornito una soluzione alla mia domanda.Il taglia/incolla dalla sua e-mail è sotto ma la formattazione è persa, quindi ho allegato il suo file di dati X.jmp e un pdf della sua risposta dove potrebbe essere più facile vedere il formato JSL nella formula.Ancora una volta, i miei ringraziamenti a Sarah ea Jim per aver inizialmente risposto alla mia domanda JSL.
___
Ciao Jeff, grazie per la tua pazienza. Ho allegato una tabella di dati contenente una formula che fa ciò che credo tu abbia descritto. Per quanto riguarda la parte della tua domanda in cui hai chiesto "È possibile strutturare le istruzioni IF in modo da omettere l'azione ELSE?" La semplice risposta è sì: basta lasciare vuota la parte "Altrimenti" dell'istruzione IF condizionale. Quindi, con un'istruzione IF, nell'Editor formule sarebbe simile a questa: In JSL, ovvero: If(:YEAR == "2020" & :CROP == "Mais" & :TYPE == "Foliar", :TRT 03 - :TRT 01 ) Con due istruzioni IF, sarebbe semplicemente così: In JSL, cioè: If( :YEAR == "2020" & :CROP == "Mais" & :TYPE == "Foliar ", :TRT 03 - :TRT 01, :YEAR == "2020" & :CROP == "Mais" & :TYPE == "IF", :TRT 05 - :TRT 01 ) Se si utilizza l'editor di formule piuttosto rispetto a JSL, è possibile inserire una nuova condizione IF facendo clic sull'icona del cursore. Nella cattura dello schermo qui sotto, ho fatto clic tre volte per aggiungere altri tre campi di espressione If. Tornando all'obiettivo che hai descritto: creo una nuova colonna denominata "16FLOZ_AddedValue" e voglio che la formula faccia: Se YEAR = 2020, CROP=Mais, TYPE=Foliar, la formula deve restituire il valore di "TRT3" meno la colonna " TRT1"; tuttavia, se ANNO = 2020, RACCOLTA=mais, TIPO=IF (cioè all'interno del solco), la formula deve restituire il valore di "TRT5" meno la colonna "TRT1" nella stessa colonna denominata "16FLOZ_AddedValue"; tuttavia, se YEAR = 2021, CROP=Mais, TYPE=Foliar, la formula deve restituire il valore di "TRT4" meno la colonna "TRT1"" nella stessa colonna denominata "16FLOZ_AddedValue"; Di seguito è riportata la formula per la nuova colonna 16FLOZ_AddedValue basata su quella descrizione. Nella tabella dati allegata, puoi fare clic sull'icona più blu accanto al nome della colonna nel pannello delle colonne per visualizzarla nell'editor delle formule. In JSL, questa formula è scritta come: If( :YEAR == "2020" & :CROP == "Mais" & :TYPE == "Foliar", :TRT 03 - :TRT 01, :YEAR == "2020" & :CROP == "Mais" & :TYPE == "IF", :TRT 05 - :TRT 01, :YEAR == "2021" & :CROP == "Mais" & :TYPE == "Fogliame", : TRT 04 - :TRT 01 ) Hai anche dichiarato: Per quanto riguarda le affermazioni ELSE, il mio desiderio è che la formula non esegua alcun tipo di azione nascosta quando la combinazione "IF" non è soddisfatta. In altre parole, ad esempio, se YEAR=2020, CROP=Mais, TYPE=Foliar, allora calcola solo TRT3-TRT1 e ometti qualsiasi tipo di azione ELSE, cioè lascia intatti tutti i valori delle celle rimanenti; e passare alle successive istruzioni IF combinate che potrebbero indirizzare la formula a prendere TRT5-TRT1, ecc. È possibile strutturare le istruzioni IF in modo da omettere l'azione ELSE? La formula che ho creato imposta il valore appropriato quando vengono soddisfatti i criteri per la prima condizione IF, quindi passa alla condizione IF successiva e così via. Non è necessario specificare alcuna condizione/valore ELSE. Spero che questa informazione sia utile. Per favore fatemi sapere se avete altre domande. Cordiali saluti, Sarah Seligman Condividi supporto tecnico JMP. Chiedere. Imparare. Collegare. - community.jmp.com Sarò lieto di continuare a lavorare con voi se doveste avere ulteriori domande in merito a questa questione; è sufficiente rispondere a questa email entro 5 giorni lavorativi. Se questa risposta ha risposto in modo completo alla tua domanda, rispondi per farmi sapere che hai ricevuto questa email e che ho risolto il problema in modo soddisfacente. Allegati 7613517300.jmp (6 Kb)
Ri: Come utilizzare "dichiarazioni condizionali" per selezionare le righe di dati da eseguire, ad esempio, semplice Col A - Col CCiao Jim, grazie per la risposta e apprezzo qualsiasi aiuto tu possa offrire e scusa per la confusione: cercherò di chiarire e semplificare il tipo di formula che desidero.
Ho una colonna denominata ANNO e i valori sono 2020 o 2021.
Ho un'altra colonna denominata RACCOLTA e i valori sono mais o soia.
Ho un'altra colonna denominata TYPE e i valori sono Foliar o IF (ovvero, nel solco)
Ho altre 10 colonne che rappresentano la resa media dei trattamenti da 1 a 10 (TRT1, TRT2,......,TRT10).
Voglio una formula per calcolare il valore aggiunto di ciascun trattamento (diversi tassi di dose del prodotto) rispetto al trattamento di controllo (tasso 0).Ecco il kicker, i numeri di trattamento (che rappresentano i tassi di dose 0, 1, 4, 8, 16, 32, 64 FL OZ/acro) differivano tra i 2 anni e tra COLTURA e TIPO.Ad esempio, il tasso di dose del prodotto di 16 FL OZ/acro era TRT5 nel 2020 sia per il mais che per la soia "IF", ovvero rappresenta le prove all'interno del solco, ed era TRT3 per le prove "fogliari" sia per il mais che per la soia nel 2021.
Quindi ho 8 possibili combinazioni di YEAR (2) x CROP (2) x TYPE (2) e vorrei 1 formula per inserire i valori per il cambiamento in bu./acre per un dato tasso di dose del prodotto rispetto al trattamento di controllo (tasso 0).... quindi, ad esempio, creo una nuova colonna denominata "16FLOZ_AddedValue" e voglio che la formula faccia :
Se YEAR = 2020, CROP=Mais, TYPE=Foliar, la formula deve restituire il valore di "TRT3" meno colonna "TRT1"; tuttavia,
Se ANNO = 2020, RACCOLTA=Mais, TIPO=SE (cioè all'interno del solco), la formula deve restituire il valore di "TRT5" meno colonna "TRT1" nella stessa colonna denominata "16FLOZ_AddedValue"; tuttavia,
Se YEAR = 2021, CROP=Mais, TYPE=Foliar, la formula deve restituire il valore di "TRT4" meno colonna "TRT1"" nella stessa colonna denominata "16FLOZ_AddedValue";
ecc. (scusa, non so come mettere insieme gli "IF" in 1 formula).
Per quanto riguarda il commento ELSE, ciò riguarda solo il mio desiderio di non fare in modo che la formula esegua alcun tipo di azione nascosta quando la combinazione "IF" non viene soddisfatta.In altre parole, ad esempio, se YEAR=2020, CROP=Mais, TYPE=Foliar, allora calcola solo TRT3-TRT1 e ometti qualsiasi tipo di azione ELSE, cioè lascia intatti tutti i valori delle celle rimanenti; e passare alle successive istruzioni combinate IF che potrebbero indirizzare la formula a prendere TRT5-TRT1, ecc.
Ri: Come utilizzare "dichiarazioni condizionali" per selezionare le righe di dati da eseguire, ad esempio, semplice Col A - Col CHo problemi a interpretare il tuo pseudo codice.
Presumo che tu abbia una colonna numerica chiamata ANNO e che stai controllando per vedere se ha il valore 2020
Hai una colonna chiamata:
RACCOLTA | Mais | Soia
o desideri che una colonna denominata RACCOLTA abbia un valore Mais o Soia
Sembra che tu abbia una colonna denominata TYPE e stai controllando se ha il valore di "IF"?
e se il valore è uguale a "IF", allora vuoi trovare la differenza tra una colonna chiamata Mean(YIELD(BU/A)_OR, 13) e una colonna chiamata Mean(YIELD(BU/A)_OR, 8)
o vuoi calcolare la media per la colonna YIELD
e infine stai facendo riferimento a una colonna denominata ELSE e determinando se è uguale a una colonna denominata EMPTY.
Sono sicuro che questo non è quello che vuoi.
Puoi fornire un esempio di ciò che è la tabella dei dati e quindi descrivere a parole ciò che desideri.
Ti suggerisco anche di dedicare del tempo alla lettura della Guida allo scripting.È disponibile nella libreria della documentazione di JMP, nel menu a discesa Guida.
Come utilizzare "dichiarazioni condizionali" per selezionare le righe di dati da eseguire, ad esempio, semplice Col A - Col CBisogno di aiuto!
Voglio selezionare righe di dati da 3 o 4 colonne (basate su dichiarazioni CONDIZIONALI, quindi eseguire piuttosto semplicemente una formula, ad esempio se le condizioni sono soddisfatte nella selezione delle righe corrette
Se(
:ANNO == 2020 , :RITAGLIA | Mais | Soia ,
:TIPO == SE , :"Mean(YIELD(BU/A)_OR, 13)"n - :"Mean(YIELD(BU/A)_OR, 8)"n,
:ELSE == :EMPTY (preferisco non utilizzare l'istruzione ELSE se è possibile....voglio solo che le istruzioni condizionali di cui sopra siano soddisfatte per sapere esattamente cosa viene aggiunto nella nuova colonna tramite la formula)
O,
Se(
:ANNO == 2020 , :RITAGLIA | Mais | Soia ,
:TIPO == FOGLIARE , :"Media(REND(BU/A)_OR, 4)"n - :"Media(REND(BU/A)_OR, 1)"n,
O,
Se(
:ANNO == 2021 , :RITAGLIA | Mais | Soia ,
:TIPO == SE , :"Media(REND(BU/A)_OR, 6)"n - :"Media(REND(BU/A)_OR, 2)"n
O,
Se(
:ANNO == 2021 , :RITAGLIA | Mais | Soia ,
:TIPO == FOGLIARE , :"Media(REND(BU/A)_OR, 3)"n - :"Media(REND(BU/A)_OR, 1)"n
)
Modellazione statistica avanzataConsumatori e ricerche di mercatoQualità e ingegneria di processo