Hallo zusammen,
Ich habe Probleme damit, Parse() durch das Hinzufügen zusätzlicher Leerzeichen zu umgehen, da dies die Auswertung meines Codes beeinträchtigt.
Ich habe eine Datentabelle mit einer Spalte von Interesse, die etwa den Namen „AA BBBB CCC(dd)“ hat, und ich führe eine Auswertung durch, bei der ich die Schätzungen einer von mir durchgeführten Anpassung simulieren möchte. Der Codeabschnitt, in dem ich das mache, ist der folgende:
Eval(
Parse(
"\[report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( ]\"
|| YCols[1] || "\[ ),
In( :Simulated Y )
);]\"
)
);
Das funktioniert größtenteils gut, aber der Befehl Parse() fügt zusätzliche Leerzeichen hinzu, wenn er die Variable YCols[1] analysiert, und wenn er das tut, geht die Simulate-Plattform davon aus, dass die Spalte nicht existiert, weil sie nach einem Namen sucht mit zusätzlichen Leerzeichen. Wenn ich nur die YCols[1] auswerte, erhalte ich den Spaltennamen wie oben: „AA BBBB CCC(dd)“. Aber wenn ich (YCols[1]) parse, verwendet der eigentliche Code, den Eval() dann ausführt, eine Spalte mit einem Namen, der so aussieht: „AA BBBB CCC( d – d )“, was nicht die richtige Spalte ist name, weil Parse() zusätzliche Leerzeichen zwischen den Klammern und dem Buchstaben „d“ sowie zusätzliche Leerzeichen um das Bindestrichzeichen „-“ einfügt. Dies ist die Ausgabe im eingebetteten Protokoll, wenn ich nur den Parse()-Teil des obigen Codes ausführe:
report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Zufälliger Startwert (RSnum),
Out( AA BBB CCC( d - d ) ),
In( :Simuliertes Y )
)
Gibt es eine Möglichkeit, dies zu umgehen, oder eine andere Möglichkeit, die Zeichenfolge für die Analyse so zu erstellen, dass keine zusätzlichen Leerzeichen hinzugefügt werden?
Ich habe sogar versucht, die Zeichenfolge zum Parsen auf folgende Weise zu erstellen, aber dies führt auch dazu, dass die Simulate-Plattform nach einem Spaltennamen mit zusätzlichen Leerzeichen sucht.
str = Eval Insert(
"report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out("
);
str2 = Eval Insert( " ),
:Simulated Y )
)" );
Eval( Parse( str || ":" || Char( Eval( YCols )[1] ) || str2 ) );Ich weiß, dass JSL sich nicht um die zusätzlichen Leerzeichen kümmert, JMP jedoch schon, wenn es um Spaltennamen geht.
Alle Gedanken/Ideen sind sehr willkommen.
Danke!,
DS