Ich bin am Anfang, ein Skript zu erstellen, um das Delta zwischen zwei Messungen für viele Spalten zu finden.
Ich habe Schwierigkeiten, Spaltenformeln zu erstellen, wenn der Spaltenname einen Bindestrich hat....
Der Parse-Befehl zum Entfernen von Anführungszeichen ändert den Bindestrich in einen Minus-Operanden, der dann das durcheinander bringt, was ich erreichen möchte.
Fehlerprotokoll:
Unerwartete "_92MHz_test_data". Vielleicht fehlt ein ";" oder ",".
Hier ist das Skript (das funktioniert, wenn die Spalte(n) keinen Operanden im Namen haben.
Z.B,
dt = aktuelle Datentabelle ();
Col_Name = "diff"; // Spalte(5) - Spalte(300)
Col_Name1_char = char(Spaltenname(5)); // "Bin von DWK112079-01_92MHz_test_data""
Col_Name2_char = char(Spaltenname(300));// "bin of DWK112079-01_90MHz_test_data""
Col1_Name = (concat(":",(Col_Name1_char))); //":Bin von DWK112079-01_92MHz_test_data";
Col2_Name = ((concat(":",Col_Name2_char))); // ":bin von DWK112079-01_90MHz_test_data";
Formel_I = ((concat(col1_Name, " - ", Col2_Name))); //Erstellen Sie den Formelausdruck
a = Ausdr(Neue Spalte(X, Formel(Z))); // Neue Spalte mit Namen Diff
b = Ersatz (Name expr(a), Expr(X), Col_Name, Expr(Z), parse(Formula_I)); // Dies hat einen Fehler, wenn Colnames "-" im Namen hat
eval(b);
//Notiz:
show(Forumula_I, parse(Formel_I));
//Hinweis: Formula_I = ":bin of DWK112079-01_92MHz_test_data - :bin of DWK112079-01_new_updated_test_data";
//Anmerkung Parse(Formel_I) = :bin of DWK112079 - 1; Das ist nicht das, was ich will
Das "-" in der Mitte eines Spaltennamens wird von JMP als Subtraktion interpretiert.Daher müssen Sie JMP mitteilen, dass der gesamte Begriff ein Spaltenname ist.Der einfachste Weg, dies zu tun, ist die Verwendung der Namensstruktur von
":Spaltenname"n
Das Folgende ist eine Überarbeitung Ihres Skripts mit den vorgenommenen Änderungen
names default to here(1);
dt = Current Data Table();
Col_Name = "diff"; // column(5) - Column(300)
Col_Name1_char = Char( Column Name( 5 ) ); // "bin of DWK112079-01_92MHz_test_data""
Col_Name2_char = Char( Column Name( 300 ) );// "bin of DWK112079-01_90MHz_test_data""
Col1_Name = (Concat( ":\!"", (Col_Name1_char), "\!"n" )); //":bin of DWK112079-01_92MHz_test_data";
Col2_Name = ((Concat( ":\!"", Col_Name2_char , "\!"n" ))); // ":bin of DWK112079-01_90MHz_test_data";
Formula_I = ((Concat( col1_Name, " - ", Col2_Name ))); //Make the formula expression
a = Expr(
New Column( X, formula( Z ) )
); // New column with name Diff
b = Substitute( Name Expr( a ), Expr( X ), Col_Name, Expr( Z ), Parse( Formula_I ) ); // This has error when Colnames has "-" in the name
Eval( b );
//Note:
Show( Forumula_I, Parse( Formula_I ) );
//Note : Formula_I = ":bin of DWK112079-01_92MHz_test_data - :bin of DWK112079-01_new_updated_test_data";
//Note Parse(formula_I) = :bin of DWK112079 - 1; This is not what I wantIch hätte das nie herausfinden können.Vielen Dank, funktioniert einwandfrei!