Analysieren eines Zeichens von Zahlen, das mit 0 beginnt, und Beibehalten der anfänglichen NullHallo,
Ich möchte einen Vektor von Werten erstellen, die aus einer Spalte in einer Datentabelle stammen. Einige dieser Werte beginnen mit der Zahl Null. Wenn ich den Befehl parse verwende, wird die Null am Anfang der Zahl abgeschnitten. Die Spalte ist als Zeichenspalte definiert. Das Skript, das ich verwende, ist eval (parse (column (DTI, "bar_pen") [i]))); Wie kann ich das tun und meine anfänglichen Nullen behalten?
Vielen Dank,
Tova
Erneutes Parsen eines Zeichens von Zahlen, das mit 0 beginnt, und Beibehalten der anfänglichen Nulldanke, das ist eine viel nettere Lösung als die, die ich gefunden habe ...
Erneutes Parsen eines Zeichens von Zahlen, das mit 0 beginnt, und Beibehalten der anfänglichen Nulldt = New Table( "Untitled",
Add Rows( 3 ),
New Column( "Bar_Pen", Character, Set Values( {"0001", "9999", "0900"} ) )
);
list = dt:Bar_pen << getvalues;
show(list); // {"0001", "9999", "0900"};
v = dt:Bar_Pen[3];
show(v, parse(v), char(parse(v))); // "0900", 900, "900"
Möglicherweise müssen Sie die Analyse, mit der die Zeichendaten in Code konvertiert werden (höchstwahrscheinlich nur eine Zahl), nicht durchführen. Dann müssen Sie den analysierten Code nicht auswerten und die ausgewertete Antwort nicht konvertieren. eine Zahl) zurück zu einer Zeichenkette. Wenn die Werte aufgrund von Dateneingabefehlern bereinigt werden müssen, scheint das Auswerten / Parsen zu funktionieren, schlägt jedoch fehl, wenn ein böswilliger Benutzer fehlerhaften Code in die Tabelle einfügt.
Erneutes Parsen eines Zeichens von Zahlen, das mit 0 beginnt, und Beibehalten der anfänglichen NullDas hat am Ende für mich funktioniert:
Wiederholen ("0", 4 - Länge (char (eval (parse (column (DTI, "Bar_Pen") [i])))) || char (eval (parse (Spalte (DTI, "Bar_Pen") [i])));