具有多個按列的匯總函數全部,
我正在嘗試編寫一個腳本來獲取觀察值的計數,可能是 1 列或多列(由用戶的輸入確定)。 我可以讓腳本適用於一列,但不適用於兩列或更多列。 如何調整匯總函數的 by step 中的代碼以處理 1+ 列?
以下是腳本示例:
varName = VarList <<GET selected="">0,
summarize(dt, cat = by(Column(dt,varName)),c=count);
//do other things
);
</GET>
謝謝!
莎拉
回复:用多個按列匯總函數很抱歉對 varname 變量造成混淆。 您說得對 - 它是一個列名稱列表,取決於用戶從 GUI 中輸入的內容(即 varList - 列列錶框)。 而且你已經解決了我的問題。 喜歡它是一個簡單的修復。
那麼,就我未來的知識而言,每當我想在 JSL 中的函數中引用數據表列名稱時,使用 eval() 命令應該可以很好地工作嗎? 我似乎總是遇到問題——尤其是在編碼圖表時。
非常感謝!
莎拉
回复:用多個按列匯總函數您的帖子中沒有足夠的信息來確保我知道問題是什麼。 了解 VarList 是什麼以及 <
dt=open("$SAMPLE_DATA\Big Class.jmp");
varname={:age, :sex};
如果是這樣,那麼您需要在 Summarize() 函數中將 use Eval() 放在 varname 周圍,如下所示:
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
varname = {:age, :sex};
//varName = VarList <<GET selected=""> 0,
Summarize( dt, cat = by( Eval( varname ) ), c = count );
//do other things
);</GET>