脚本问题:变量名称未动态传递给条件评估语句<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,大家好,
我在起草一个脚本时遇到了一些麻烦,该脚本可以节省我数小时的时间,我们会定期进行一些 DOE 分析。
这是我希望脚本执行的操作:
1) 为您可以在脚本中找到的 cc = {Variables} 命令中的每个原始变量创建一个新变量。 这很好用。
2) 对于每个创建的新变量,我想附加一个条件语句来评估原始变量中包含的数据是否高于某个阈值。
我觉得我快接近了,问题是在条件语句中,cc 命令中变量的实际名称没有正确传递。 因此,我的脚本出错了。
如果您能如此亲切,我想更好地了解这里出了什么问题。 为了帮助我附加了一些模拟数据和我正在处理的当前脚本。
另外,我只想确保在脚本中可以将多个条件语句传递给多个变量。
非常感谢您帮助我从这个问题中吸取教训。
脚本(也附有数据)
光盘=当前数据表() ;
// 用户指定的列名
抄送= { C1 RLU , C2 RLU , C3 RLU } ;
为了(一世= 1个,一世<= N 项(抄送) ,一世++,
新建专栏(字符(抄送[一世]) || “5e3” ,数字,公式(如果(抄送[一世] > 5000 , 1个, 0 ))) ;
(新建专栏(字符(抄送[一世]) || “1e4” ,数字)) ; 10000 // 如果第一个条件有效,则将在此处为 10000 创建第二个
(新建专栏(字符(抄送[一世]) || “2e4” ,数字))) ; 20000 // 这里的另一个条件是 20000
回复:脚本问题:变量名称未动态传递给条件评估语句我只想非常感谢你们的帮助。 这修复了它,但更重要的是我会在以后知道如何通过此类问题解决问题。
非常感谢。
回复:脚本问题:变量名称未动态传递给条件评估语句马克贝利的回答很好。
如果您仍然需要包含公式的列,技巧是记住 JMP 假设公式应该在列中计算,而不是在脚本执行时计算。 结果,它把抄送[1]在公式中而不是列引用中。 在评估 New Column() 之前,您需要替换列引用。
cd = Current Data Table();
// User specified column names
cc = {C1 RLU, C2 RLU, C3 RLU};
For( i = 1, i <= N Items( cc ), i++,
Eval(
Substitute(
Expr(
New Column( Char( cc[i] ) || "5e3", Numeric, formula( col > 5000 ) );
New Column( Char( cc[i] ) || "1e4", Numeric, formula( col > 10000 ) );
New Column( Char( cc[i] ) || "2e4", Numeric, formula( col > 20000 ) );
),
expr(col), cc[1]
)
);
);
-杰夫
回复:脚本问题:变量名称未动态传递给条件评估语句试试这个脚本:
光盘=当前数据表() ;
// 用户指定的列名
抄送= { C1 RLU , C2 RLU , C3 RLU } ;
为了(一世= 1个,一世<= N 项(抄送) ,一世++,
光盘<<新建专栏(字符(抄送[一世] ) || “5e3” ,
数字,
价值观(
当地的( {数据} ,
数据=抄送[一世] <<获取矩阵;
数据> 5000
)
)
) ;
光盘<<新建专栏(字符(抄送[一世] ) || “1e4” ,
数字,
价值观(
当地的( {数据} ,
数据=抄送[一世] <<获取矩阵;
数据> 10000
)
)
) ;
光盘<<新建专栏(字符(抄送[一世] ) || “2e4” ,
数字,
价值观(
当地的( {数据} ,
数据=抄送[一世] <<获取矩阵;
数据> 20000
)
)
) ;
) ;