根據列名稱清單新增公式列你好呀!我正在嘗試建立一個腳本,該腳本將根據列名稱是否包含正確的關鍵字來產生公式列。我認為我濫用了列表將字串轉換為其他函數的方式。目前使用 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] 中的下標範圍”