JLS – Spalte durch einen Wert dividieren<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo nochmal,
Ich schreibe ein Skript, das mehrere CSV-Dateien öffnet und sie zusammenfügt. es funktioniert gut!
In einer Spalte möchte ich die Werte einer anderen Spalte durch einen Wert dividieren.Ich kann es einfach nicht herausfinden.Ich kann es zwar mit dem Formeleditor machen, aber ich glaube nicht, dass ich diese Syntax beim Erstellen von Skripten verwenden kann.
dt << Neue Spalte("."); //nur um eine leere Spalte zu erstellen
dt << New Column("Id(A/mm)");
col = Column("Id(A/mm)");
col << Set Formula(Column("Id(A)")/Wg);
col << EvalFormula;
[Code/]
Betreff: JLS – Spalte durch einen Wert dividierenIch habe mich für Davids zweite Methode entschieden.Ich denke, ich verstehe, warum seine erste Methode ein Problem hat, aber ich konnte Ihre vorgeschlagenen Änderungen nicht umsetzen.Während ich das Skript ausführe, kann ich alle neuen Spalten erstellen, aber die Formeln funktionieren nicht.
col= neue Spalte("."); //Leere Spalte hinzufügen
col=Neue Spalte("Id(A/mm)",numeric,continuous);
col<
col<Betreff: JLS – Spalte durch einen Wert dividieren
ja, gut erkannt.Danke
Betreff: JLS – Spalte durch einen Wert dividierenEs gibt ein Problem mit der ersten von David bereitgestellten Lösung.Während der Code funktioniert, lautet die erstellte Formel:
:Sequence/valueToDivideBy
Da „valueToDivideBy“ eine skalare Speichervariable ist, die verschwindet, sobald die JMP-Sitzung geschlossen wird, oder ihren Wert im Laufe der Tagesverarbeitung ändern kann, könnte der berechnete Wert von „col“ ungültig oder falsch werden.Die zweite Version der Formel wäre vorzuziehen.Wenn Sie jedoch die Struktur der ersten Lösung verwenden möchten, können Sie Folgendes tun:
1. Ändern Sie die Se-Formel in:
col << Set Formula(Eval(Parse(":Sequence/"||char(valueToDivideBy)));
2. Konvertieren Sie die Formel in statische Werte, sobald die Formel angewendet wurde.Fügen Sie dazu die folgende Zeile nach der Zeile „col << Set Formula“ hinzu
col << delete property("formula");
Betreff: JLS – Spalte durch einen Wert dividierenso etwas vielleicht:
someNumbers = 1 :: 10 ;
Neuer Tisch ( "Demo" ,
Zeilen hinzufügen ( 10 ) ,
Neue Spalte ( "Reihenfolge" , numerisch , kontinuierlich , << Werte festlegen ( someNumbers ) )
) ;
Kol = Neue Spalte ( "." , numerisch , kontinuierlich ) ;
valueToDivideBy = 2 ;
Kol << Formel festlegen ( : Reihenfolge / valueToDivideBy ) ;
// oder ...
Kol = Neue Spalte ( „..“ , numerisch , kontinuierlich ) ;
Kol << Formel festlegen ( Als Spalte ( "Reihenfolge" ) / 2 ) ;