So entfernen Sie Anführungszeichen in einem Variablennamen in einer FormelHallo,
Ich möchte zwei Spalten auswählen und die Formel ausführen. Allerdings haben die Variablen in der Formel ein „ “ um den Namen und funktionieren daher nicht. Irgendwelche Vorschläge?
dt = Current Data Table();
win = New Window( "Clean False Zeroes",
<<MODAL></MODAL>
Betreff: So entfernen Sie Anführungszeichen in einem Variablennamen in einer FormelHey! Es funktioniert, wenn ich den Namensausdruck verwende. Vielen Dank euch beiden für eure Hilfe. Ich bin sehr glücklich.Betreff: So entfernen Sie Anführungszeichen in einem Variablennamen in einer FormelVielen Dank an Sie beide für Ihre Vorschläge, aber keiner davon funktioniert für mich. Zur Verdeutlichung habe ich eine Testdatei mit den Daten in Spalte A und dem Status in Spalte B erstellt. Dann habe ich eine dritte Spalte mit der enthaltenen Formel erstellt. Man kann davon ausgehen, dass es funktioniert. Wenn ich das Skript ausführe, um dasselbe zu tun (ich weiß nicht, welche Spalten ich auf Nullen bereinigen möchte), sehen Sie in Spalte 4, dass es nicht richtig funktioniert. Ich hoffe, es macht alles Sinn.
dt = Current Data Table();
win = New Window( "Clean False Zeroes",
<<MODAL></MODAL>
Betreff: So entfernen Sie Anführungszeichen in einem Variablennamen in einer FormelIch denke, Sie möchten so etwas tun:
dt << new column("check",
formula(eval(evalexpr(If(Is Missing(expr(nameexpr(yvar))),.,expr(nameexpr(xvar))) )))
);
The selected names are in the scriptThe selected names are in the scriptDie ausgewählten Namen sind im Skript enthalten
Ohne die zusätzliche Arbeit erhalten Sie so etwas
The variable names are in the scriptThe variable names are in the scriptDie Variablennamen stehen im Skript
Was nur funktioniert, solange yvar :name und xvar :height enthält. Dies ist nicht der Fall, wenn Sie die Tabelle speichern, JMP schließen und neu starten und dann die Tabelle öffnen.
Was tut es?
evalu () ist ein Signal an Formel um sein Argument zu bewerten. Normalerweise würden Sie das nicht wollen, denn normalerweise ist es der Ausdruck, dem Sie geben Formel () sollte erst ausgewertet werden, wenn die Spalte sie ausführen muss. Der erste Code, der ausgeführt wird, ist also evalexpr (), was einen umgeschriebenen Ausdruck für die Formelspalte zurückgibt. Auswertung sucht in seinem Argument nach Ausdruck () Funktionen, die es auswerten und durch das Ergebnis ersetzen kann; es gibt zwei davon. Was also bewertet wird, ist das NameExpr Funktion, die den Namen ihres Arguments zurückgibt ... xvals Argument und Name ist :height.
Betreff: So entfernen Sie Anführungszeichen in einem Variablennamen in einer FormelAuch basierend auf den Eingaben von Craige (Danke!) habe ich das Skript mit dem Spaltendialogeditor arrangiert
dt = Current Data Table();
cd=column Dialog(
Title(" Clean False Zeroes "),
xcols= ColList(" Numeric ", MinCol( 1 ), DataType("Numeric"), modeling type("Continuous") ),
ycols= ColList(" Character ", MinCol( 1 ), DataType("Character"), modeling type("Nominal") ),
);
xvar =cd["xcols"];
yvar =cd["ycols"];
xvar=xvar[1];
yvar=yvar[1];
dt << new column("check",, formula(If(Is Missing(yvar),.,xvar) ) );
Betreff: So entfernen Sie Anführungszeichen in einem Variablennamen in einer FormelWir müssten mehr von der JSL sehen, die das Skript erstellt, um eine bessere Antwort zu geben, aber
{"LOA (QC1007AI),%"}
ist eine Liste einer Zeichenfolge in Anführungszeichen. (Die geschweiften Klammern ergeben eine Liste.) Sie können das Element aus der Liste entfernen und etwas näher dran sein
colNames = {"LOA (QC1007AI),%"};
theColumnName = colnames[1];
print(theColumnName);
Für die meisten Verwendungszwecke müssen Sie eine Spalte aus dem Spaltennamen erstellen.
col = column( dt, theColumnName );
Die Spaltenfunktion sucht den Namen in der Datentabelle und gibt die Spalte zurück.
Ich denke, Sie haben möglicherweise eine Funktion verwendet, die die Namen von Spalten zurückgibt, und nicht eine Funktion, die Spalten zurückgibt. Es gibt einen guten Beitrag http://www.pega-analytics.co.uk/blog/column-references/ einige dieser Themen diskutieren.
Betreff: So entfernen Sie Anführungszeichen in einem Variablennamen in einer FormelHallo gianpaolo_polsi,
Vielen Dank für das Skript, ich denke, ich kann es für andere Zwecke verwenden, es löst jedoch nicht mein Problem:If( Is Missing( {"Status (LOA)"} ),
.,
{"LOA (QC1007AI),%"}
)
Ich verstehe nicht, warum ich diese „ “-Markierungen in meiner Formel bekomme, wenn ich sie schreibe.Betreff: So entfernen Sie Anführungszeichen in einem Variablennamen in einer FormelUnterstrich ist möglicherweise die bessere Wahl als Doppelpunkt, da der Doppelpunkt ein Operator ist.
Betreff: So entfernen Sie Anführungszeichen in einem Variablennamen in einer FormelHallo Sop
Probieren Sie diesen Code vorher auf die Datentabelle aus, um Formeln anzuwenden
// code to replace any special JMP character with single char " : "
For(i = 1, i <= N Col(dt), i++,
Column(dt, i) << set name(Regex(Column(dt, i) << get name, "\W", ":", GLOBALREPLACE))
);