回复:在公式中使用列列表你好@jthi ,
不确定这是不是有意的,但它肯定与列表中的括号、{} 和列表中的项目数有关。 我可以重现您描述的相同问题。
我认为您执行 Insert Into 的解决方案是最佳选择。 Parse 会变得非常复杂和困难。 我认为您对 Insert Into 有一个很好的解决方案,最好坚持下去,以解决列表括号问题。
DS
回复:在公式中使用列列表JMP 探索峰会再次与专家见面! 跳到自动化 & Cust 分组讨论室的脚本和@EvanMcCorkle有比我的循环插入和 eval 解析更清洁的解决方案;秒用 ColSum 替换 listOfCols 周围的 List:
listOfCols = {:height, :age, :sex}; //won't work here
f = Substitute(listOfCols, Expr(list), Expr(ColSum));
Show(f); //f = ColSum(:height, :age, :sex);不确定 Col Sum() 函数是否适用于列列表,但此解决方案简洁明了。
在公式中使用列列表我在尝试直接使用从列对话框返回的列列表时遇到了“问题”(例如 {:sex, :age: name})。 当我尝试在带有 byVars 的 Col 公式(Col Mean、Col Sum...)中直接使用该列表时,该公式将无法正常工作。 将列表与例如 Sum() 公式一起使用可以正常工作。 这是预期的行为吗,有没有人有比我下面的示例更清晰的方法来从列列表中构建 Col Sums?
下面是带有 Sum() 和 ColSum() 公式的示例脚本。 有几种不同的方法我试图构建 ColSum() 公式,但设法让它们只使用 Insert Into 和表达式和 EvalParse(由于调试麻烦,我将尽量避免)。
例子:
名称默认为此处(1); dt = Open("$SAMPLE_DATA/Big Class.jmp"); dt << New Column("Sum", Numeric, "Continuous", Format("Best", 12), Formula(Sum(:height, :weight))); listOfCols = {:height, :weight}; //列表在这里起作用 dt << New Column("SumList", <
脚本编写