回复:在公式中使用列列表你好@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", <
腳本編寫