堆疊輸出表名你好,
我有一個腳本,可以動態解析堆疊表的一些信息,並希望將堆疊表儲存為新的資料表。
ystr1 = ":基礎設施值,:基礎設施值 1"
infr = "基礎設施價值";
數據=“PPT”;
輸出名稱=“infra_updated.jmp”;
gbStr = EvalInsert("dt << 堆疊(
列(
^ystr1^
),
來源標籤列(^infr^ ),
堆疊資料列(^data^),
輸出表(^輸出名稱^)
)”
);
評估(解析(gbStr));
我收到以下錯誤
名稱未解析:存取或評估“infra_updated.jmp”時存在 infra_updated..jmp
無法弄清楚為什麼 EvalInsert 不適用於輸出表
自動化和腳本編寫回覆:堆疊輸出表名稱Output Table() 指定名稱周圍需要加上引號。因此,需要將它們新增到您的output_name變數的字串值中
ystr1 = ":INFRASTRUCTURE Value, :INFRASTRUCTURE Value 1";
infr = "Infrastructure Value";
data = "PPT";
output_name = "\!"infra_updated\!"";
gbStr = Eval Insert(
"dt << Stack(
columns(
^ystr1^
),
Source Label Column(^infr^ ),
Stacked Data Column(^data^),
Output Table(^output_name^ )
)"
);
Eval( Parse( gbStr ) );
回覆:堆疊輸出表名稱吉姆已經給出了你的劇本中出現問題的原因。我建議您使用 Eval(Parse()) 以外的其他方法,因為調試起來非常困難,並且腳本編輯器中沒有語法突出顯示
Names Default To Here(1);
/*
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = {"age", "height"};
*/
cols = {"INFRASTRUCTURE Value", "INFRASTRUCTURE Value 1"};
infr = "Infrastructure Value";
data = "PPT";
output_name = "infra_updated";
dt_stacked = dt << Stack(
Columns(Eval(cols)),
Source Label Column(infr),
Stacked Data Column(data),
Output Table(output_name)
);
回覆:堆疊輸出表名稱感謝您解釋這個問題。回覆:堆疊輸出表名稱我對 JSL 腳本相當陌生,並且仍在熟悉它的過程中。但我同意你的解決方案看起來更容易調試。謝謝回覆:堆疊輸出表名稱我嘗試了你的解決方案,但我看到了這個錯誤。我的清單中確實有正確的列名。
“在‘Stack’的存取或評估中找不到列,錯誤的參數”
回覆:堆疊輸出表名稱對我來說,當我使用程式碼中留下的範例對其進行測試時,它在 JMP18(和 17)中運行良好
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = {"age", "height"};
infr = "Infrastructure Value";
data = "PPT";
output_name = "infra_updated";
dt_stacked = dt << Stack(
Columns(Eval(cols)),
Source Label Column(infr),
Stacked Data Column(data),
Output Table(output_name)
);

您確定列名書寫正確且它們位於清單中嗎?