Come utilizzare le "dichiarazioni condizionali" per selezionare le righe di dati da eseguire, ad esempio, semplici Col A - Col CBisogno di aiuto!
Voglio selezionare le righe di dati da 3 o 4 colonne (in base alle istruzioni CONDITIONAL, quindi eseguire piuttosto semplicemente la formula, ad esempio se sono soddisfatte le condizioni nella selezione delle righe corrette
Se(
:ANNO == 2020 , :RACCOLTA | Mais | semi di soia ,
:TIPO == SE , :"Media(RENDIMENTO(BU/A)_OR, 13)"n - :"Media(RENDIMENTO(BU/A)_OR, 8)"n,
:ELSE == :EMPTY (preferisco non usare l'istruzione ELSE se è possibile .... voglio solo che le istruzioni condizionali sopra siano soddisfatte per sapere esattamente cosa viene aggiunto nella nuova colonna tramite la formula)
O,
Se(
:ANNO == 2020 , :RACCOLTO | Mais | semi di soia ,
:TIPO == FOGLIARE , :"Media(RENDIMENTO(BU/A)_OR, 4)"n - :"Media(RENDIMENTO(BU/A)_OR, 1)"n,
O,
Se(
:ANNO == 2021 , :RACCOLTA | Mais | semi di soia ,
:TIPO == SE , :"Media(RENDIMENTO(BU/A)_OR, 6)"n - :"Media(RENDIMENTO(BU/A)_OR, 2)"n
O,
Se(
:ANNO == 2021 , :RACCOLTA | Mais | semi di soia ,
:TIPO == FOGLIARE , :"Media(RENDIMENTO(BU/A)_OR, 3)"n - :"Media(RENDIMENTO(BU/A)_OR, 1)"n
)
SceneggiaturaRe: Come utilizzare le "dichiarazioni condizionali" per selezionare le righe di dati da eseguire, ad esempio, semplici Col A - Col CHo problemi a interpretare il tuo pseudocodice.
Presumo che tu abbia una colonna numerica chiamata ANNO e che stai controllando per vedere se ha il valore 2020
Hai una colonna denominata:
COLTURA | mais | semi di soia
o vuoi che una colonna denominata CROP abbia un valore di 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 denominata Mean(YIELD(BU/A)_OR, 13) e una colonna denominata Mean(YIELD(BU/A)_OR, 8)
o vuoi calcolare la media per la colonna RENDIMENTO
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 a leggere la Guida agli script.È disponibile nella libreria della documentazione di JMP, nel menu a discesa Guida.
Re: Come utilizzare le "dichiarazioni condizionali" per selezionare le righe di dati da eseguire, ad esempio, semplici Col A - Col CCiao Jim, grazie per aver risposto e apprezzo tutto l'aiuto che puoi 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 CROP e i valori sono mais o soia.
Ho un'altra colonna denominata TYPE e i valori sono Fogliare o IF (cioè 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 (tasso di dose di prodotto diverso) 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 CROP e TYPE.Ad esempio, la dose di prodotto di 16 FL OZ/acro era TRT5 nel 2020 sia per il mais che per la soia "IF", ovvero rappresentava le prove nel solco, ed era TRT3 nelle prove "fogliari" di mais e soia nel 2021.
Quindi ho 8 possibili combinazioni di YEAR (2) x CROP (2) x TYPE (2) e mi piacerebbe 1 formula per compilare i valori per la modifica in bu./acre per una determinata dose di prodotto rispetto al trattamento di controllo (tasso 0)....quindi, ad esempio, creo una nuova colonna denominata "16FLOZ_AddedValue" e voglio che la formula esegua :
Se YEAR = 2020, CROP=Mais, TYPE=Foliar, la formula deve restituire il valore di "TRT3" meno colonna "TRT1"; tuttavia,
Se YEAR = 2020, CROP=Mais, TYPE=IF (cioè nel 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. (scusate, non so come mettere insieme gli "IF" in 1 formula).
Per quanto riguarda il commento ELSE, ciò riguarda semplicemente 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, calcola solo TRT3-TRT1 e ometti qualsiasi tipo di azione ELSE, ovvero lascia inalterati tutti i valori delle celle rimanenti; e passa alle successive istruzioni IF combinate che potrebbero indirizzare la formula a prendere TRT5-TRT1, ecc.
Re: Come utilizzare le "dichiarazioni condizionali" per selezionare le righe di dati da eseguire, ad esempio, semplici 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 in cui 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 su 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 vuoto il pezzo "Else" dell'istruzione IF condizionale. Quindi, con un'istruzione IF, sembrerebbe qualcosa del genere nell'editor delle formule: In JSL, ovvero: If(:YEAR == "2020" & :CROP == "Mais" & :TYPE == "Fogliare", :TRT 03 - :TRT 01 ) Con due istruzioni IF, sarebbe simile a questo: In JSL, ovvero: If( :YEAR == "2020" & :CROP == "Mais" & :TYPE == "Fogliar ", :TRT 03 - :TRT 01, :YEAR == "2020" & :CROP == "Mais" & :TYPE == "IF", :TRT 05 - :TRT 01 ) Se si utilizza piuttosto l'editor di formule rispetto a JSL, puoi inserire una nuova condizione IF facendo clic sull'icona del cursore. Nella schermata 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 esegua: Se YEAR = 2020, CROP=Mais, TYPE=Foliar, la formula deve restituire il valore di "TRT3" meno la colonna " TRT1"; tuttavia, se YEAR = 2020, CROP=Mais, TYPE=IF (cioè nel 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 blu più accanto al nome della colonna nel pannello delle colonne per vederlo nell'editor delle formule. In JSL, questa formula è scritta come: If( :YEAR == "2020" & :CROP == "Mais" & :TYPE == "Fogliar", :TRT 03 - :TRT 01, :YEAR == "2020" & :CROP == "Mais" & :TYPE == "IF", :TRT 05 - :TRT 01, :YEAR == "2021" & :CROP == "Mais" & :TYPE == "Fogliare", : TRT 04 - :TRT 01 ) Hai anche affermato: Per quanto riguarda le affermazioni ELSE, il mio desiderio che la formula non 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, calcola solo TRT3-TRT1 e ometti qualsiasi tipo di azione ELSE, ovvero lascia inalterati 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 un modo che ometta l'azione ELSE? La formula che ho creato imposta il valore appropriato quando i criteri sono soddisfatti per la prima condizione SE, quindi passa alla condizione SE successiva e così via. Non è necessario specificare alcuna condizione/valore ELSE. Spero che queste informazioni siano utili. Per favore fatemi sapere se avete ulteriori domande. Cordiali saluti, Sarah Seligman Supporto tecnico JMP Condividi. Chiedere. Imparare. Collegare. - community.jmp.com Sarò felice di continuare a lavorare con te in caso di ulteriori domande su questo argomento; rispondi semplicemente 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)