JSL-Funktion oder Fehler?Ich habe eine Funktion, die darauf angewiesen ist, zu wissen, ob ein Teilstring eines größeren Strings eine Zahl darstellt oder nicht, und ich verwende einfach das Ergebnis des Befehls Num() – wenn er einen fehlenden Wert zurückgibt, gehe ich davon aus, dass der Teilstring keine Zahl darstellt .
Ein Benutzer wies jedoch auf einen Fehler hin, dessen Ursache darin lag, dass der Befehl Num() mit jeder Zahl, der das wörtliche „R“ vorangestellt ist, vollkommen zufrieden ist.
Ist dies jemandem als Funktion oder Fehler bekannt?Ich habe versucht, im Skriptindex nachzuschauen, kann mir aber keine sinnvolle Abfrage dafür vorstellen.
Danke!
Print( Num( "R404" ) );
Print( Num( "R123.456" ) );
Print( Num( "r99" ) );
/*
404
123.456
.
*/
Automatisierung und SkripterstellungBetreff: JSL-Funktion oder Fehler?@Audrey_Shull
Ich hatte ein Problem mit einer Spalte, die als Zeichen importiert wurde.
Ich konnte mit dem Auge nichts sehen, was nicht numerisch war.
Aber als man daraus einen numerischen Wert machte, verschwanden die meisten Werte. (mit JMP 16.2 Pro)
Aber mit JMP 17EA konnte ich sofort von Zeichen zu Zahlen wechseln, ohne dass Werte verschwanden.
Da gab es also einige Fortschritte.
Hoffentlich hilft das!
Ben
Betreff: JSL-Funktion oder Fehler?Grüße an alle. 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: JSL-Funktion oder Fehler?Ich habe eine Nachricht an die Dokumentations- und Entwicklungsteams von JMP gesendet. Danke!
Betreff: JSL-Funktion oder Fehler?Die Währung scheint wahrscheinlich, aber ich kann nicht wirklich sagen, ob es sich dabei um eine Funktion handelt. Wenn ja, bedarf es sicherlich einer besseren Dokumentation an verschiedenen Stellen.Wenn Sie bereits eine Vorstellung davon haben, wie hoch die Zahl ist sollen Obwohl es vielleicht besser wäre, eine eigene Validierungsfunktion für diese Daten zu schreiben, finde ich, dass dadurch Dinge wie „1/1“ nicht als 1. Januar interpretiert werden. Dies wird natürlich schwieriger, wenn Sie mit mehreren Sprachen arbeiten.
num_validated = function({v}, {r=.},
if( //Make sure anything with odd characters is missing
is missing(regex(v,"^[0-9\.\,]+$")),
r = .,
//try to interpret everything else using 'num':
r = num( v );
);
r;
);
show(
num_validated("1"),
num_validated("1.0"),
num_validated("R1"),
num_validated("1,000")
);Betreff: JSL-Funktion oder Fehler?Mir ist klar, dass es viele Fälle gibt, auf die man achten muss – aber speziell muss ich mich nur um Standardzeichen kümmern und „R“ ist hier das einzige Beispiel.In jeder anderen Programmiersprache wäre dies gut dokumentiert oder würde als Fehler betrachtet werden (jedes Verhalten, das nicht explizit in der Dokumentation aufgeführt ist, ist ein Fehler), JMP befindet sich jedoch nicht auf diesem Dokumentationsniveau, sodass es sich wahrscheinlich nur um eine versteckte Funktion handelt.
Betreff: JSL-Funktion oder Fehler?Währung vielleicht. Es gibt viele seltsame Fälle, auf die man achten sollte ...
num("$5")
5
num("1jan2000")
3029529600
num("5%")
0,05
asdate(num("1/1"))
01.01.2001