Formelmassagen zur Datentabelle<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo zusammen,
Ich habe Tausende von Formelspalten, um die Formeln aus diesen Spalten zu erstellen und zu löschen.
Um den Prozess zu beschleunigen, füge ich die Formel auf folgende Weise hinzu.
dt << Formula Eval unterdrücken (1);
for loop (
neue Spalte (Formel);
dt << Formula Eval unterdrücken (0);
dt << Formeln ausführen;
);
2. für Schleife
for-Schleife (Try (Spalte (dt, Newcolname [ik]) << Formel löschen)) ;
Gibt es eine Möglichkeit, die Löschformel-Massage an datable statt an jede Spalte zu senden.
da die Schleife zum Löschen der Formeln mehr als 5 Minuten benötigt.
Jede Umgehung ist hoch geschätzt . Supercomputer ist keine Option.
Re: Formelmassagen zur Datentabellemichael.anderson
Hallo Michael, deine Idee scheint sehr interessant für das Erstellen von Formeln mit Metriken zu sein. Ich bin mir jedoch nicht sicher, wie viel wir mit diesen Methoden nutzen können.
Unten ist eine Situation: Ich habe meinen neuen Col-Namen und die entsprechenden Formeln als 2 Spalten in einem Excel-Arbeitsblatt organisiert. Linke Spalte sind neue Namen der in der Tabelle hinzuzufügenden Spalten und die rechte Spalte enthält viele komplexe Formeln.
Jetzt muss ich diese Art von 100 oder 1000 Formeln mit for-Schleife hinzufügen (soweit ich weiß). Die FOR-Schleife weiß also nicht, was konstant ist und wie der Spaltenname ist. so benutze ich namexpr, um dies zu erreichen: column (dttable, Newcolname [ij]) << set Formula (nameexpr (newcol1))
Meine Frage wäre also, gibt es einen ähnlichen Weg (mit expr), um das gleiche mit Matrizen zu tun, ohne Spaltenwerte in eine Matrix zu bekommen. << GetAsMatrix?
newcol1 = 34 * col1 / 54 * col2-col3 / 2
newcol2 = col1 / 54 * col2-col3 / 2
newcol3 = 36 + col1 / 54 * col2-col3 / 2
newcol4 = 37 * 1e6 * col1 / 54 * col2-col3 / 2
Vielen Dank, RAM
Re: Formelmassagen zur DatentabelleDanke, MS. Ihr Ansatz, eine neue Tabelle über Verkettung zu erstellen, ist fabelhaft. Es behält alle Tabellenvariablen und Zeilenreihenfolge usw., jedoch ohne Formeln. es half mir, die überflüssige Zeit, die zum Löschen von Formeln benötigt wurde, zu eliminieren. @!
Danke für den tollen Vorschlag. Formelmassagen zur Datentabelle
Re: Formelmassagen zur DatentabelleVerstanden... Alles, was Sie fragen, ist noch möglich, wenn Sie mit den Daten als Matrix arbeiten ... Ich schlage vor, dass Sie die Daten als Matrix erhalten, diese Berechnungen ausführen und die Ergebnisse dann in eine Datentabelle schreiben. Sie können dann wie gewohnt die Spezifikationsgrenzen, Einheiten usw. hinzufügen, müssen jedoch die Formeln aus der Datentabelle hinzufügen und anschließend entfernen. In der Regel kommt die Verlangsamung aus der Änderung der Datentabelle selbst, die im Grunde jedes Mal, wenn Sie die Formel ändern, neu erstellt wird.
Wenn Sie wirklich alles in der Datentabelle behalten möchten, ist das Festlegen der Spaltenformel auf Empty () möglicherweise schneller als das Löschen. Aber Sie müssten das ausprobieren, um es sicher zu wissen.
Beste,
M
Re: Formelmassagen zur DatentabelleIhm,
Ich bin sicher, dass die Metrik viel schneller ist als die Verwendung von Datentabellen. aber ich brauche daten in der tabelle, weil ich lokale datenfilter verwenden muss, um sehr kleine verbesserungen in splits zu identifizieren.
Hier sind die einzelnen Schritte
1 Benötigte Formel zur Normalisierung der elektrischen Rohparameter durch W und L, z. B. Ion * W / * Wa.
2 Spezifikationsgrenzen werden zusammen mit der Konvertierung von Daten zu geeigneten Einheiten wie pA, uA, nA, mV, mW durch Multiplikation mit dem entsprechenden Faktor angehängt.
3. Schritt 2 gilt auch für einige der erforderlichen Rohparameter. Hier müssen Sie die Formel löschen, damit neue Spalten voneinander abhängig konvertiert werden können.
Hinweis:
1 Wir können die Formel- und Spezifikationslimitdatei nicht zusammenführen, da das Spezifikationslimit ständig aktualisiert wird. so muss es getrennt bleiben.
2 Die Umwandlung von Mergin-Einheiten ist ebenfalls keine Option.
RAM
Re: Formelmassagen zur Datentabelleram.asra@gmail.com
Hallo! Vielleicht ist es ein besserer Ausgangspunkt, einen Schritt zurück zu gehen und herauszufinden, warum die tausend Spalten mit Formeln benötigt werden.
Ich weiß, dass das Berechnen von Werten im Speicher als Matrix viel schneller ist als mit Datentabellen. Dies würde auch auf die Notwendigkeit von Spalten verzichten. Bei Discovery gab es dieses Jahr eine ziemlich gesunde Diskussion mit der besten Praxis, die Verwendung von Spaltenformeln in Skripten möglichst zu vermeiden.
Können Sie uns helfen, den Anwendungsfall ein bisschen mehr zu verstehen?
Beste,
M
Re: Formelmassagen zur DatentabelleEine Problemumgehung, die ich mir vorstellen kann, ist die Verwendung der Formel zum Löschen von Concatenate (). Der folgende Code erstellt eine Kopie der Datentabelle - einschließlich aller Tabellenvariablen oder Skripts -, jedoch ohne Formeln.
dt = Aktuelle Datentabelle () ; // Tabelle mit zu löschenden Formeln
new_dt = dt << Verketten ( dt_temp = Neue Tabelle ( "temp" . Neue Spalte ( "Lösch mich" ))) ;
new_dt << Spalte löschen ( "Lösch mich" ) ;
Schließen ( dt_temp . nosave ) ;