Formel funktioniert nicht innerhalb einer FOR-SchleifeHallo,
In Zusammenarbeit mit einem Kunden, der darauf abzielt, die Datenerfassung aus verschiedenen klinischen Studien zu automatisieren, haben wir Action Recorder verwendet, um die entsprechenden Skriptzeilen zu erhalten.
Jetzt vereinfache ich das Skript mithilfe von Listen und Schleifen, um es für eine breitere Verwendung generisch zu machen.
Ich konnte es bis zu Reihe 58 machen. In den Zeilen 58-61 versuche ich zu reproduzieren, was mit den Zeilen 63-100 passiert, indem ich eine FOR-Schleife und eine Formel wie unten gezeigt verwende:
For( i = 1, i <= N Items( colList ), i++,
Data Table( "Summary with Dose=0" ) <<
New Column( colList_Sum_3[i],
Numeric,
"Continuous",
Format( "Best", 12 ),
formula( colList_Sum_1[i] - colList_Sum_2[i] )
)
);
Es erstellt die entsprechenden Spalten (basierend auf einer Liste), aber nicht die Formeln in jeder Spalte.
Ich habe es mit Eval / Expr versucht, aber ich muss zugeben, dass ich nicht weiß, wie und wann ich sie verwenden soll.
Danke für die Hilfe.
Emmanuel
Betreff: Formel funktioniert nicht innerhalb einer FOR-SchleifeTut das, was Sie im Sinn hatten? Möglicherweise können Sie dies auch ohne Verwendung von Ausdrücken erledigen, aber ich finde diesen Ansatz robuster, insbesondere wenn Sie mit problematischen Spaltennamen umgehen müssen (z. B. wenn Sie einen mathematischen Operator oder ein statistisch reserviertes Wort enthalten). Die Idee ist, die beiden Argumente für die Join-Nachricht, die die Spalten benötigen, als Ausdrücke zu behandeln, sie zu erstellen, indem Sie Spaltenreferenzen in sie einfügen (verwenden Sie wegen des oben erwähnten Problems keine Namen) und sie dann in die Beitreten Nachricht mit Ersatz (in die du stecken kannst Ausdruck der Ausdruck wird also auch ausgewertet). Ein wiederkehrendes Thema ist die Verwendung von Name Ausdruck Um zu verhindern, dass die Variable, mit der Sie arbeiten, vollständig ausgewertet wird (dh Sie möchten den Inhalt der Variablen als Ausdruck behandeln, interessieren Sie sich nicht für ihren ausgewerteten Wert). Hoffe das hilft.
anziehen
Betreff: Formel funktioniert nicht innerhalb einer FOR-SchleifeHallo Emmanuel,
Du bist nur ein bisschen daneben. Probieren Sie das beigefügte Skript aus. Es scheint mit Ihren Beispieldaten zu funktionieren.Korrekturen werden als //Stattdessen versuchen Sie dies kommentiert. Ihr ursprünglicher Code ist auskommentiert.
Am besten,
Jason
Betreff: Formel funktioniert nicht innerhalb einer FOR-SchleifeMit korrektem Skript neu gepostet
Betreff: Formel funktioniert nicht innerhalb einer FOR-SchleifeHallo Don, hast du irgendetwas am Drehbuch geändert? Ich schätze, Sie kopieren / fügen das Original ohne Änderung ein oder ich habe es verpasst.
Betreff: Formel funktioniert nicht innerhalb einer FOR-SchleifeHallo Jason,
es gibt Spalten zurück, die eine Formel enthalten: Column( colList_Sum_1[i] ) - /*###*/Column( colList_Sum_2[i] ) /*###*/
aber es erfolgt keine Berechnung.
Emmanuel
Betreff: Formel funktioniert nicht innerhalb einer FOR-SchleifeEntschuldigung Emmanuel,
Ursprünglich gepostet das ursprüngliche Skript. Mit dem bearbeiteten Skript neu gepostet.
anziehen
Betreff: Formel funktioniert nicht innerhalb einer FOR-SchleifeAlles sollte bis Zeile 76 in meinem bearbeiteten Skript funktionieren. Es scheint, dass Sie darüber hinaus das Problem auf die gleiche Weise lösen könnten, wie Sie es oben mit Schleifen getan haben?Ich mag Dons Umgang mit Ausdrücken für den Join. Dies ist eine Überlegung wert. Sie müssen sich noch mit den Spaltenlisten und Spaltennamen befassen, also könnten Sie sich vielleicht Ideen aus unseren beiden Skripten holen.Ich werde später heute ein Update mit einer Korrektur für die unteren 37 Zeilen Ihres Skripts senden.
Betreff: Formel funktioniert nicht innerhalb einer FOR-SchleifeHallo Jason,
In Ihrem bearbeiteten Skript geben die Zeilen 69-76 keine Berechnung zurück
For( i = 1, i <= N Items( colList ), i++,
Data Table( "Summary with Dose=0" ) << New Column( colList_Sum_3[i],
Numeric,
"Continuous",
Format( "Best", 12 ),
formula( Column( colList_Sum_1[i] ) - Column( colList_Sum_2[i] ) )
)
);
Zur Klarstellung zielen die Zeilen 69-76 (58-61 im Originalskript) darauf ab, die Zeilen 78-115 (63-100 im Originalskript) zu ersetzen.
Der Rest des Skripts ist in Ordnung, in den Zeilen 69-76 (58-61 im Originalskript) stecke ich fest.
Betreff: Formel funktioniert nicht innerhalb einer FOR-SchleifeHallo Don, ich habe das E-Learning zum Thema Skripting durchlaufen, aber es fällt mir schwer, Eval, Expr, NameExpr, ... zu verstehen. Hätten Sie zufällig einen ergänzenden Kurs, eine Dokumentation, die helfen könnte?