Come posso trasformare una colonna di dati temporali (nominali) in dati continui in un'unità (mesi)?Ciao a tutti.
In JMP, lavoro con dati di stabilità estratti da un sistema LIMS. Durante l'analisi, avrei tempo in mesi sull'asse X. I dati estratti sono disponibili in due "formati" di tempo: sia come tempo espresso in mesi (ad esempio "M-12" o "M-36") o come tempo indicato in giorni (ad esempio "EOS-968" o "EOS-1011" ). Tutti i dati si trovano nella stessa colonna.
Ho bisogno che i dati continuino a essere in grado di eseguire l'analisi richiesta. Per quanto riguarda il tempo in mesi, normalmente rimuovo semplicemente la "M-" facendo un "cerca e sostituisci" e lasciando vuoto il valore di sostituzione. È più lavoro cambiare i giorni in mesi.
Il mio pensiero iniziale era di rimuovere prima la parte "EOS-", quindi ricalcolare in mesi, ma poiché i dati si trovano tutti nella stessa colonna, trovo difficile tenere separati i due "set di dati" finché non hanno il stessa unità.
Avresti qualche bella idea su come posso fare più facilmente questa trasformazione? Forse è richiesto un piccolo script?
Qualsiasi aiuto è molto apprezzato.
Distinti saluti
Enrichetta
Tabella datiRi: Come posso trasformare una colonna di dati temporali (nominali) in dati continui in un'unità (mesi)?Ciao Dale.
Grazie mille per il tuo aiuto.
BR Enrichetta
Ri: Come posso trasformare una colonna di dati temporali (nominali) in dati continui in un'unità (mesi)?Ciao Jarmo.
Ha funzionato perfettamente. Grazie mille per il tuo aiuto.
BR Enrichetta
Ri: Come posso trasformare una colonna di dati temporali (nominali) in dati continui in un'unità (mesi)?Vedo altre idee simili, in allegato è mia (senza scripting).
Ri: Come posso trasformare una colonna di dati temporali (nominali) in dati continui in un'unità (mesi)?Non è necessario memorizzarlo in una variabile.
Esempio sotto. Esegui lo script e controlla la formula per MonthNumber:
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
New Column("Time", Character, "Nominal", Set Values({"M-12", "M-36", "EOS-968", "EOS-1011"}))
);
dt << New Column("MonthNumber", Numeric, Continuous, Formula(
If(StartsWith(:Time, "M"),
Num(Word(2, :Time, "-"))
,
StartsWith(:Time, "EOS"),
Num(Word(2, :Time, "-"))/30
,
. //if starts with something else than "M" or "EOS"
);
));
È quindi possibile modificare la formula come richiesto.
Ri: Come posso trasformare una colonna di dati temporali (nominali) in dati continui in un'unità (mesi)?Ciao.
Grazie mille per il tuo aiuto. Sono totalmente nuovo nello scripting JMP, quindi forse puoi indicarmi la giusta direzione facendo le logiche mancanti.
Per "logica del mese" voglio solo rimuovere la parte "M-", quindi penso che la funzione Word della risposta di Dales dovrebbe fare il trucco.
Per "logica del giorno" voglio rimuovere la parte "EOS-" (usando la funzione Word) e quindi calcolare la parte numerica dai giorni ai mesi. Forse una domanda stupida, ma posso semplicemente aggiungere due righe di codice o devo memorizzarlo in qualche modo in una variabile?
Grazie 
Ri: Come posso trasformare una colonna di dati temporali (nominali) in dati continui in un'unità (mesi)?Ciao Dale. Grazie per l'aiuto. Per quanto posso vedere, l'utilizzo della funzione Word come descritto mi darà una colonna di dati continui (yay), ma in due unità diverse (giorni e mesi).
Qualche idea su come posso ricalcolare i giorni in mesi, ma solo facendo questo per le righe in cui il valore numerico è in giorni?
BR Enrichetta
Ri: Come posso trasformare una colonna di dati temporali (nominali) in dati continui in un'unità (mesi)?Oltre a utilizzare Word() è possibile utilizzare l'istruzione Inizia con e If per determinare come calcolare il mese.
Questo script sottostante aggiungerà i valori segnaposto 1 (mese) e 2 (giorno). Sostituiscili con la tua logica per il calcolo del mese
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
New Column("Time", Character, "Nominal", Set Selected, Set Values({"M-12", "M-36", "EOS-968", "EOS-1011"}))
);
dt << New Column("MonthNumber", Numeric, Continuous, Formula(
If(StartsWith(:Time, "M"),
//month logic here
1
,
StartsWith(:Time, "EOS"),
//day logic here
2
,
. //if starts with something else than "M" or "EOS"
);
));

Ri: Come posso trasformare una colonna di dati temporali (nominali) in dati continui in un'unità (mesi)?La funzione "parola" sembra fare il trucco - vedi il file di esempio allegato.