公式在 FOR 循環中不起作用你好,
與一個旨在從各種臨床研究中自動收集數據的客戶合作,我們使用動作記錄器來獲取適當的腳本行。
現在,我正在使用列表和循環來簡化腳本,使其具有通用性,以供更廣泛的使用。
我能夠做到第 58 行。 在第 58-61 行,我嘗試使用 FOR 循環和公式重現第 63-100 行發生的情況,如下所示:
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] )
)
);
它創建適當的列(基於列表),但不是每列中的公式。
我嘗試使用 Eval / Expr 但我不得不承認我不知道如何以及何時使用它們。
謝謝您的幫助。
伊曼紐爾
回复:公式在 FOR 循環中不起作用這是否符合您的想法? 您也許可以在不使用表達式處理的情況下完成它,但我發現這種方法更健壯,特別是當您必須處理有問題的列名時(例如,當您有一個數學運算符或統計保留字時)。 這個想法是將需要列的 Join 消息的兩個參數視為表達式,通過在其中插入列引用來構建它們(由於我上面提到的問題,不要使用名稱),然後將它們插入到加入留言代替(您可以放入表達式所以表達式也會被評估)。 一個反復出現的主題是使用名稱表達式防止您正在使用的變量完全評估(即,您想將變量的內容視為表達式,您對其評估值不感興趣)。 希望這可以幫助。
大學教師
回复:公式在 FOR 循環中不起作用嗨,伊曼紐爾,
你只差一點。 試試附加的腳本。 它似乎適用於您的示例數據。更正被註釋為 //Try this 而不是。 您的原始代碼已被註釋掉。
最好的,
傑森
回复:公式在 FOR 循環中不起作用用正確的腳本重新發布
回复:公式在 FOR 循環中不起作用嗨,唐,您是否更改了腳本中的任何內容? 我猜你複製/粘貼原始的沒有任何更改,否則我錯過了。
回复:公式在 FOR 循環中不起作用嗨傑森,
它返回包含公式的列: Column( colList_Sum_1[i] ) - /*###*/Column( colList_Sum_2[i] ) /*###*/
但沒有進行計算。
伊曼紐爾
回复:公式在 FOR 循環中不起作用對不起伊曼紐爾,
最初發布原始腳本。 與編輯後的腳本一起重新發布。
大學教師
回复:公式在 FOR 循環中不起作用在我編輯的腳本中,一切都應該工作到第 76 行。 似乎除此之外,您可以像上面的循環一樣解決問題嗎?我喜歡 Don 對連接的表達式處理。 這是值得考慮的。 您仍然需要處理列列表和列名,所以也許您可以從我們的兩個腳本中獲取想法。我將在今天晚些時候發送更新,修復您腳本的低 37 行。
回复:公式在 FOR 循環中不起作用嗨傑森,
在您編輯的腳本行 69-76 中不返回任何計算
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] ) )
)
);
為了澄清第 69-76 行(原始腳本中的 58-61)旨在替換第 78-115 行(原始腳本中的 63-100)。
腳本的其餘部分還可以,它位於我卡住的第 69-76 行(原始腳本中的 58-61)。
回复:公式在 FOR 循環中不起作用嗨,Don,我已經完成了關於腳本的電子學習,但我很難理解 Eval、Expr、NameExpr,...... 碰巧你有任何補充課程,可以提供幫助的文檔嗎?