在公式中使用列列表當我嘗試直接使用從列對話框返回的列列表(例如 {:sex, :age: name})時,我遇到了“問題”。 當我嘗試直接在 Col 公式(Col Mean、Col Sum...)和 byVars 中使用該列表時,公式將無法正常工作。 將列表與例如 Sum() 公式一起使用效果很好。 這是預期的行為嗎?是否有人有比我下面的示例更乾淨的方法從列列表中構建列總和?
下面是包含 Sum() 和 ColSum() 公式的示例腳本。 我嘗試使用幾種不同的方法來構建 ColSum() 公式,但設法讓它們僅與帶有表達式的 Insert Into 和 EvalParse 一起使用(由於調試麻煩,我將盡力避免這種情況)。
例子:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Sum", Numeric, "Continuous", Format("Best", 12), Formula(Sum(:height, :weight)));
listOfCols = {:height, :weight}; //list works here
dt << New Column("SumList", <<FORMULA></FORMULA>
高級統計建模自動化和腳本編寫數據混合和清理實驗設計質量和工藝工程回复:在公式中使用列列表JMP Discovery 峰會與專家見面會再次帶來! 跳到自動化和客戶分組討論室的腳本編寫@EvanMcCorkle有比我的循環插入和評估解析更乾淨的解決方案; s用 ColSum 替換 listOfCols 周圍的列表:
listOfCols = {:height, :age, :sex}; //won't work here
f = Substitute(listOfCols, Expr(list), Expr(ColSum));
Show(f); //f = ColSum(:height, :age, :sex);不確定 Col Sum() 函數是否適用於列列表,但這個解決方案乾淨簡單。
回复:在公式中使用列列表你好@jthi ,
不確定這是否是有意為之,但它肯定與列表括號、{} 和列表中的項目數有關。 我可以重現您所描述的相同問題。
我認為你的插入解決方案是最好的選擇。 解析可能會變得非常複雜和困難。 我認為您對“插入”有一個很好的解決方案,並且最好堅持使用它,以解決列表括號問題。
DS