公式在 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 循环中不起作用用正确的脚本重新发布
回复:公式在 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 循环中不起作用抱歉,Emanuel。可能是咖啡喝得不够。我想要的语法是:As Column()。我检查了最终表格,公式似乎按预期对列进行了区分。可能有一个更好的解决方案,即在公式编辑器中有意义的新列中留下一个公式。列公式很重要吗?或者您可以构建一个矩阵并设置值吗?
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(:As Column(colList_Sum_1[i])-:As column(colList_Sum_2[i]))
)
);