Normalizzare una colonnaTLDR: Come faccio a normalizzare una colonna rispetto a se stessa?
Vedi allegato. Ho:
- Colonna A = 0,1,2,3. Forse pensalo come un numero ID
- Colonna B. Consideralo come un timestamp
- Colonna C. Questi sono i dati
Ora voglio che la colonna D contenga i dati della colonna C, SOLO quando B=1.
Come puoi vedere nel file allegato, ho copiato e incollato manualmente le celle gialle da C a D. Ho incollato più e più volte.

Pertanto, quando faccio D/C, sto sostanzialmente normalizzando l'intera colonna C a questi valori speciali gialli. Il motivo per cui faccio tutto questo è trovare D/C. Quindi un valore di 0,9 in questa colonna significa che C è inferiore ai valori gialli C, e 1,1 significa che è superiore ai valori gialli C.
Quindi, per farla breve, qual è la formula da usare in D per ottenere i valori gialli?
Automazione e scriptingAnalisi e modellazione dei dati di baseRe: Normalizzare una colonnamodificare
Scusa, devo prestare più attenzione. Non stavi chiedendo come ottenere D/C.
Selezionare C e D, quindi fare clic con il pulsante destro del mouse. Nuova colonna formula > Combina > Rapporto (ordine inverso)

Re: Normalizzare una colonnaMi dispiace se continuo a fraintendere, ma se vuoi che D manchi quando B non è 1 e che D abbia i valori di C quando B è uno, prova questa formula.
Choose( :B, :C, . )
Re: Normalizzare una colonnaGrazie per la risposta. Non esattamente. Voglio solo una formula nella colonna D che riproduca quei numeri.
Questa formula prenderà le celle gialle in C e le applicherà all'intera colonna D. In questo modo, l'intera colonna D sarà composta dalle celle gialle ripetute, come mostrato. (Presumibilmente, da qualche parte nella formula, dovremmo codificare B=1.)
Probabilmente ho confuso le cose digitando manualmente D nell'esempio. Ho digitato manualmente quei numeri, ma voglio una formula che mi restituisca D.
Re: Normalizzare una colonnaGrazie per la risposta, ma ecco un confronto tra la tua risposta e ciò che voglio, ovvero una formula per D. Quindi confronta la colonna finale e D e vedrai che non sono la stessa cosa.

Re: Normalizzare una colonnaNon è la formula giusta?
If( :B == 1, 1, :D / :C )

Re: Normalizzare una colonnaSono sicuro che esista un modo per creare uno script per la soluzione, ma suggerirei piuttosto che in questo caso sia più sensato passare dal formato dati Tall a un formato dati Wide. Quando si utilizzano le formule JMP, è sempre più semplice quando tutti i termini necessari per quel calcolo si trovano nella stessa riga. (A volte questo è impossibile, in tal caso è necessario uno script intelligente. Ma in questo caso è possibile.)
Il mio suggerimento: suddividere la tabella dati in modo che sia in formato Wide, con una colonna separata per ogni "B". In questo modo la normalizzazione (suddividendo per C) diventa semplice.

È possibile ricodificare i nomi delle colonne per renderli un po' più leggibili:

Dopo aver aggiunto le nuove colonne formula, si ottiene:

Potrebbe andare bene per te? Ho allegato la tabella per tuo riferimento.
Re: Normalizzare una colonnaUtilizzare un'aggregazione Col raggruppata come col Mediana() per definire i valori della colonna D come
Col median(if (:B==1,:C), :A)
È anche possibile saltare la colonna D e calcolare direttamente :C/Denominatore .
Nel Marketplace è disponibile un componente aggiuntivo che esegue automaticamente tale normalizzazione.
Re: Normalizzare una colonnaNo, voglio trovare la formula per D. Nel mio esempio ho semplicemente digitato manualmente i numeri per D ma voglio una formulaRe: Normalizzare una colonnacosa c'è che non va
Col median(if (:B==1,:C), :A)
?
Re: Normalizzare una colonnaHogi, questa è la soluzione! Grazie! È un po' strano dover usare una funzione "mediana" visto che non c'è una mediana in vista, ma capisco cosa fa. Grazie! Darò un'occhiata anche al componente aggiuntivo Marketplace.
Re: Normalizzare una colonnaGrazie! Funziona, ma è un po' scomodo da visualizzare per un essere umano quando ho un set di dati così ampio. La risposta di Hogi è più semplice, ma grazie comunque per il consiglio!