根据列名称列表添加公式列你好呀!我正在尝试创建一个脚本,该脚本将根据列名称是否包含正确的关键字来生成公式列。我认为我滥用了列表将字符串转换为其他函数的方式。目前使用 JMP 17
Ptable = Current Data Table ();
col list = Ptable << Get Column Names(String);
if(debug == 1, Print(col list));
For(i=1, i<NCOLS></NCOLS>
<LINGO-LABS id="lingo-labs-724835" slang="en-US" mode="CREATE"><LINGO-LABEL>自动化和脚本编写</LINGO-LABEL></LINGO-LABS>回复:根据列名称列表添加公式列您必须在那里正确评估列。 Expr(NameExpr(AsColumn())) 是一种选择
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
mycol1 = "height";
mycol2 = "weight";
Eval(EvalExpr(
new_col = dt << New Column("Col", numeric, continuous, formula(
Expr(NameExpr(AsColumn(dt, mycol1))) * Expr(NameExpr(AsColumn(dt, mycol2)))
))
));
show(new_col << get formula);
使用 Eval Insert、Eval Expr、Parse 和 Substitute 将一个表达式插入另一个表达式
回复:根据列名列表添加公式列没关系!问题是我的数组 clist 没有把列名拉到列表中!
@jthi命名列也需要表达式求值吗?您分享的页面显示,使用 Char(Array[#]) 的 Concat 操作运行正常,但我尝试重命名列时出错,代码如下所示。我没有添加列,所以不确定为什么 N 列和 For 循环中的计数器会不匹配。
clist = Ptable << Get Column Names( String );
num_col = N Cols(Ptable);
For(i=3, i < num_col, i++,
Column(i) << Set Name(Char(clist[i]) || " °C"); //Error on this line
);
“访问或评估‘clist[ /*###*/i]’、clist[/*###*/i] 中的下标范围”