So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenLieber S,
Habe vor ein paar Wochen mit JMP angefangen!! Das ist eine naive Frage.
Ich versuche, den Datentyp einer Spalte von „Zeichen“ in „Numerisch“ zu konvertieren, verliere jedoch alle numerischen Werte aus der Spalte, während ich den Datentyp in „Numerisch“ konvertiere.
Bitte finden Sie die beigefügten Screenshots dazu.
Wie behalte ich die numerischen Werte einer Spalte bei, wenn ich ihren Datentyp von „Zeichen“ in „Numerisch“ ändere?
Habe es versucht, indem ich die Zeichen mit den folgenden Befehlen ersetzt habe:
Werte1 = dt:RequiredColumn<
Regex( :RequiredColumn, "[^0-9]", "", GLOBALREPLACE );
Dabei werden auch alle numerischen Werte ersetzt.
Ich möchte einfach die numerischen Werte aus der Spalte beibehalten (ursprünglich im Datentyp „Zeichen“). Bei der Suche nach diesem Problem in unserer Community konnten keine relevanten Informationen dazu gefunden werden.
Bild01 – OriginalColumnFormat – Screenshot des ursprünglichen Datentyps der Spalte
Bild 02 – ColumnafterChangingDatatype – Screenshot der Spalten nach dem Ändern des Datentyps in „Numerisch“.
Vielen Dank im Voraus...

Erweiterte statistische ModellierungDatenzugriffDatenmischung und -bereinigungMassenanpassungQualitäts- und VerfahrenstechnikWindowsBetreff: So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenGrüße an alle. Ein Update für Sie – es sieht so aus, als ob im Zeitrahmen von JMP 17 einige Arbeiten an diesem Problem durchgeführt wurden. Insbesondere wurde Num() und Informat() ein zusätzliches Argument hinzugefügt, um Ihnen zu helfen, zu steuern, was als gültige Zahl gilt. Alle Benutzer von JMP 17 EA7 (oder höher) können dies jetzt ausprobieren; andere müssen warten, bis JMP 17 im Herbst 2022 verfügbar ist. Vielen Dank für die Meldung! Wir überwachen diese Foren und versuchen, solche Probleme nach Möglichkeit zu beheben.
Betreff: So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenKönnte es sein, dass JMP das als Datum interpretiert und weil dieses Datum vor dem 01.01.1904 liegt (was die Startzeit von JMPs Datum/Uhrzeit ist), ist es negativ.
Names Default To Here(1);
a = Num("9.4.333");
b = Num("31.12.1903");
c = Num("1.12.1903");
Show(a, b, c);
Nach dieser Diskussion in der Community darüber, wie sich Num() verhält Ich habe meine eigenen Validatoren zum Überprüfen numerischer Werte verwendet. Dies ist ein Beispiel:
Names Default To Here(1);
num_validator = Function({str}, {Default Local},
regex_validator_string = "^[-\+]{0,1}[0-9\.\,]+$";
If(Is Missing(Regex(str, regex_validator_string)),
retval = .; //use missing as non match due to num returning . in case of non-numeric
, //else
retval = Num(str)
);
return(retval);
);Betreff: So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenVielen Dank, dass Sie sich die Zeit genommen haben, dieses Problem zu untersuchen, Jim!!
Betreff: So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenEs scheint, dass JMP einen Fehler in der Num()-Funktion hat.Zeichenfolgen des Musters
„nnn“
sollte immer einen fehlenden JMP-Wert zurückgeben, in vielen Fällen wird jedoch ein gültiger numerischer Wert zurückgegeben
Num( "9.4.333" )
kehrt zurück
-49554633600
Ich kann in der JMP-Dokumentation keinen Verwendungshinweis zu diesem Problem finden (eine nicht erschöpfende Suche).Ich sende einen Fehlerbericht an das JMP-Supportteam.
Betreff: So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenDanke jthi!!
Das hat den Job gemacht...
Betreff: So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenDas Konvertieren der vorhandenen Tabelle ist „einfach“, im Allgemeinen ist dies bei dieser Art der Konvertierung jedoch nicht der Fall. Es gibt so viele verschiedene Werte, die Sie berücksichtigen müssen. Dann gibt es ein Problem/eine Funktion mit dem Wie Die Num-Funktion von JMP funktioniert. Im Folgenden finden Sie eine Idee, bei der jedoch viele verschiedene „numerische“ Formate wie Dauer, Datum, Uhrzeit, Prozentsatz, Tausendertrennzeichen usw. weggelassen werden. Außerdem werden nur einige der möglichen Zeichen entfernt, die nichts mit Zahlen zu tun haben
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))
));
Betreff: So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenLieber Jim.
Ich habe versucht, das Skript für die 6. Zeilennummer auszuführen, bevor ich es in Numerisch konvertierte. Das Ergebnis ist
:MeasuredValues[6] = "-1,00";
Char To Hex(:MeasuredValues[6]) = "2D312E3030";
Nach der Konvertierung des Datentyps der Spalte in „Numerisch“:
:Messwerte[6] = .;
Char To Hex(:MeasuredValues[6]) = "FFFFD10000000000";
Ich habe das Skript für die zweite Zeile ausgeführt, die in einen numerischen Wert konvertiert wird (ändert sich nach der Konvertierung in einen anderen Wert). Das Ergebnis ist
Vor der Konvertierung:
:MeasuredValues[2] = "1.6.1";
Char To Hex(:MeasuredValues[2]) = "312E362E31";
Nach der Konvertierung:
:Messwerte[2] = 3061584000;
Char To Hex(:MeasuredValues[2]) = "41E6CF8210000000";
Ich habe die Tabelle mit den MeasuredValues-Daten angehängt.
Danke !!
Betreff: So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenLieber Statmann,
Vielen Dank für Ihre zeitnahe Antwort.
Ich habe Ihren Vorschlag ausprobiert, indem ich nicht numerische Werte mit der Option „Neu kodieren“ aus der Spalte entfernt habe, und versucht, den Datentyp der Spalte von „Zeichen“ in „Numerisch“ zu konvertieren. Allerdings verschwinden nach wie vor alle Werte wie zuvor, wenn der Datentyp in „Numerisch“ geändert wird.
Bitte finden Sie die beigefügten Screenshots dazu.
Bei der Rekodierungsoption war JMP in der Lage, zwischen numerischen Werten und Zeichenfolgenzeichen zu unterscheiden.
Ich werde das Ergebnis von Herrn JIMs Vorschlag bald veröffentlichen.
Danke schön..
Betreff: So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenJMP sollte alle Werte konvertieren, die korrekte Darstellungen numerischer Werte sind.Deshalb,
1.6.1, V1.6 sollten in einen fehlenden Wert konvertiert werden, da es sich nicht um gültige numerische Werte handelt.
Allerdings sollten -1,00, 5,00 und -15.000 umgerechnet werden.
Führen Sie bitte das folgende Skript aus, um zu prüfen, ob Ihre Daten versteckte Zeichen enthalten, die möglicherweise ein Problem verursachen.
show(:MeasuredValues[6],char to hex(:MeasuredValues[6]);
Das Skript zeigt die Hexadezimalwerte für den Wert in der 6. Zeile Ihrer Datentabelle an.Wenn -1,00 nicht in der 6. Zeile steht, ändern Sie die 6 in die Zeilennummer für eine der Zeilen, in der die Zeichendarstellung ein gültiger numerischer Wert zu sein scheint, die Zelle jedoch in einen fehlenden Wert geändert wird.
Es wäre auch sehr nützlich, wenn Sie eine Beispieldatentabelle anhängen könnten, die nur die Spalte „MeasuredValues“ enthält.
Betreff: So konvertieren Sie den Spaltendatentyp von „Zeichen“ in „Numerisch“, ohne dass numerische Werte in der Spalte verloren gehenEs gibt wahrscheinlich mehrere Möglichkeiten, das zu erreichen, was Sie wollen, und ich wette, jemand (z. B. Jim) hat ein Skript, um es effizienter zu machen, aber hier ist ein möglicher Arbeitsablauf:
Übrigens erlauben uns Ihre JPGs nicht zu sehen, wie die Zeichenspalten aussehen, die Sie ändern möchten. Wenn Zeichen vorhanden sind, die nicht numerisch sind, müssen diese behandelt werden, bevor Sie den Datentyp ändern.
1. Klicken Sie mit der rechten Maustaste auf die Spalte und verwenden Sie „Neu kodieren“. Entfernen Sie alle nicht numerischen Werte.
2. Klicken Sie dann mit der rechten Maustaste und wählen Sie „Spalteninformationen“. (wie die JPGs). Ändern Sie den Datentyp von „Zeichen“ in „Numerisch“ und den Modellierungstyp in „Kontinuierlich“.