<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto riscontrando un problema in cui importano spesso file di testo con un lungo campo numerico, come un "datetime" sotto forma di "20141214115959", e JMP continua a visualizzarlo come un numero troncato in notazione scientifica come "2.0141e + 13 ". Al fine di rendere il numero visualizzato correttamente, devo andare manualmente nell'impostazione della colonna e aumentare la larghezza; la larghezza del campo automatico è sempre 10 quando si importa il file di testo. Ma JMP ha una preferenza del programma per "Larghezza campo predefinita", che ho anche provato a impostare, ma JMP non riesce nemmeno a onorare questa impostazione allo scopo di importare file di testo. La "Larghezza campo predefinita" viene onorata solo se creo una nuova colonna in una tabella JMP.
Questo deve essere un bug, giusto? Perché mai è il software scritto in modo che la larghezza del campo predefinita quando si importa un file sia sempre codificata a 10 e non usi la preferenza? C'è un altro modo in cui posso impostare correttamente l'ampiezza del campo senza dover modificare manualmente le colonne dopo l'importazione?
MS Excel ha lo stesso problema e mi sarei aspettato che JMP facesse meglio, ma suppongo che non sia così.
Il tuo esempio è un numero intero con codifica utente che JMP non riconosce come un punto nel tempo. È possibile importare questo valore come stringa di caratteri e quindi utilizzare le funzioni JSL nella formula di una nuova colonna di dati numerici per analizzarla in un valore di data e ora JMP. JMP rappresenta qualsiasi punto nel tempo come il numero di secondi dalla mezzanotte del 1 gennaio 1904. Puoi usare il formato della colonna per visualizzare questo valore in un modo più amichevole, come "m / g / m: m: s" o qualsiasi altro formato che ti si addice.
Questo script prototipo può essere convertito in una formula di colonna:
// il tuo numero lungo di esempio, che rappresenta un punto nel tempo
data e ora = "20141214115959";
// converti in tempo JMP analizzando il valore della stringa di caratteri
data ora = Data MDY (
Num (Sottostrato (data e ora, 5, 2)),
Num (Sottostrato (data e ora, 7, 2)),
Num (Sottostrato (data e ora, 1, 4))
) +
// aggiungi ore
In ore (
Num (Sottostrato (data e ora, 9, 2))
) +
// aggiungi minuti
In minuti (
Num (Sottostrato (data e ora, 11, 2))
) +
// aggiungi secondi
Num (Sottostrato (data e ora, 13, 2));
// ora formatta il numero di secondi in forma user-friendly
Formato (data, "m / g / m: m: s");
Questo sembra una svista. Lo annoterò e vedrò se riusciremo a farlo affrontare in una versione futura.
Nel frattempo, lo script seguente cambierà la larghezza del campo di tutte le colonne selezionate nella tabella dati corrente a 20.
cols = current data table() << Get Selected Columns;
for (i=1, i<=nitems(cols), i++,
column(cols[i])<<set field width(20);
);
Puoi fare un menu personalizzato o un pulsante della barra degli strumenti per farlo.
-Jeff