Come convertire il tipo di dati della colonna da carattere a numerico senza perdere i valori numerici nella colonnacari,
Iniziato con JMP poche settimane fa!! È una domanda ingenua.
Sto provando a convertire una colonna Tipo di dati da Carattere a Numerico, tuttavia sto perdendo tutti i valori numerici dalla colonna durante la conversione del tipo di dati in Numerico.
Si prega di trovare gli screenshot allegati per lo stesso.
Come mantenere i valori numerici da una colonna quando cambio il tipo di dati da Carattere a Numerico??
Provato sostituendo i caratteri usando i seguenti comandi,
valori1 = dt:RequiredColumn<
Regex( :RequiredColumn, "[^0-9]", "", GLOBALREPLACE );
con questo vengono sostituiti anche tutti i valori numerici.
Semplicemente vorrei mantenere i valori numerici dalla colonna (originariamente nel tipo di dati Carattere). Il tentativo di cercare questo problema nella nostra community non è riuscito a ottenere alcuna informazione pertinente al riguardo.
Picture01 - OriginalColumnFormat - Screenshot del tipo di dati originale della colonna
Picture02 - ColumnafterChangingDatatype - Screenshot di Column dopo aver modificato il tipo di dati in Numeric.
Grazie in anticipo...
Tabella datiSceneggiaturafinestreRe: Come convertire il tipo di dati della colonna da carattere a numerico senza perdere i valori numerici nella colonnaCi sono probabilmente diversi modi per ottenere ciò che vuoi e scommetto che qualcuno (ad esempio Jim) avrà uno script per renderlo più efficiente, ma ecco un potenziale flusso di lavoro:
A proposito, i tuoi jpg non ci consentono di vedere a quali colonne di caratteri vuoi cambiare. Se sono presenti caratteri non numerici, è necessario gestirli prima di modificare il tipo di dati.
1. Fare clic con il pulsante destro del mouse sulla colonna e utilizzare Ricodifica. Rimuovere tutti i valori non numerici.
2. Quindi, fai clic con il pulsante destro del mouse e scegli Informazioni sulla colonna. (come i jpg). cambia il tipo di dati da carattere a numerico e il tipo di modellazione a continuo.
Re: Come convertire il tipo di dati della colonna da carattere a numerico senza perdere i valori numerici nella colonnaJMP dovrebbe convertire tutti i valori che sono rappresentazioni corrette di valori numerici.Perciò,
1.6.1, V1.6 dovrebbe essere convertito in un valore mancante, poiché non sono valori numerici validi.
Tuttavia, è necessario convertire -1.00, 5.00 e -15.000.
Potresti eseguire il seguente script per vedere se ci sono caratteri nascosti nei tuoi dati che potrebbero causare un problema.
show(:MeasuredValues[6],char to hex(:MeasuredValues[6]);
Lo script visualizzerà i valori esadecimali per il valore nella sesta riga della tabella di dati.Se -1.00 non è nella sesta riga, cambia il 6 nel numero di riga per una delle righe in cui la rappresentazione del carattere sembra essere un valore numerico valido, ma la cella viene modificata in un valore mancante.
Sarebbe anche molto utile se potessi allegare una tabella di dati di esempio che contiene solo la colonna MeasuredValues.
Re: Come convertire il tipo di dati della colonna da carattere a numerico senza perdere i valori numerici nella colonnaCaro statista,
Grazie per la tua tempestiva risposta.
Ho provato il tuo suggerimento rimuovendo i valori non numerici usando l'opzione Ricodifica dalla colonna e ho provato a convertire il tipo di dati delle colonne da carattere a Numerico. Tuttavia, ancora tutti i valori scompaiono come prima quando il tipo di dati viene modificato in Numerico.
Si prega di trovare gli screenshot allegati per lo stesso.
Nell'opzione di ricodifica, JMP è stato in grado di differenziare valori numerici e caratteri stringa.
Pubblicherò presto il risultato del suggerimento del Sig. JIM.
Grazie..
Re: Come convertire il tipo di dati della colonna da carattere a numerico senza perdere i valori numerici nella colonnaCaro Jim.
ho provato a eseguire lo script per il numero di riga 6 prima di convertirlo in numerico, il risultato è
:Valori misurati[6] = "-1,00";
Da char a esadecimale(:MeasuredValues[6]) = "2D312E3030";
Dopo aver convertito il tipo di dati della colonna in Numerico:
:ValoriMisurati[6] = .;
Da Char a Hex(:MeasuredValues[6]) = "FFFFD10000000000";
ho eseguito lo script per la seconda riga che viene convertita in un valore numerico (cambia in un valore diverso dopo la conversione), il risultato è
Prima della conversione:
:Valori misurati[2] = "1.6.1";
Da char a esadecimale(:MeasuredValues[2]) = "312E362E31";
Dopo la conversione:
:Valori misurati[2] = 3061584000;
Da Char a Hex(:MeasuredValues[2]) = "41E6CF8210000000";
Ho allegato la tabella con i dati MeasuredValues.
Grazie !!
Re: Come convertire il tipo di dati della colonna da carattere a numerico senza perdere i valori numerici nella colonnaConvertire la tabella che hai è "facile", ma in generale questo tipo di conversione non lo è. Ci sono così tanti valori diversi di cui dovrai tenere conto. Poi c'è un problema/caratteristica con come La funzione Num di JMP funziona. Di seguito c'è un'idea, ma questo lascerà comunque fuori molti formati "numerici" diversi, come durate, date, orari, percentuali, migliaia di separatori e così via. Inoltre rimuove solo alcuni dei possibili caratteri che non sono correlati ai numeri
Names Default To Here(1);
dt = Current Data Table();
//remove alphabetical characters, should also remove some special characters
regex_one = "[a-zA-Z\s]";
dt << New Column("no_alph", Character, Nominal, << Set Each Value(
Regex(:MeasuredValues, regex_one, "", GLOBALREPLACE);
));
regex_two = "^-?[0-9]+\.?[0-9]*$";
dt << New Column("nums", Numeric, Nominal, << Set Each Value(
Num(Regex(:no_alph, regex_two))
));
Re: Come convertire il tipo di dati della colonna da carattere a numerico senza perdere i valori numerici nella colonnaGrazie jthi!!
Quello ha fatto il lavoro...
Re: Come convertire il tipo di dati della colonna da carattere a numerico senza perdere i valori numerici nella colonnaSembra che JMP abbia un bug nella funzione Num().Stringhe di caratteri del modello
"nnn"
dovrebbe sempre restituire un valore mancante JMP, tuttavia in molti casi restituisce un valore numerico valido
Num( "9.4.333" )
ritorna
-49554633600
Non riesco a trovare alcuna nota di utilizzo su questo problema nella documentazione JMP (una ricerca non esaustiva).Sto inviando una segnalazione di bug al team di supporto di JMP.