如何在數據表腳本中存儲評估列表你好,
我想將腳本存儲在數據表中,以便用戶以後可以打開表並運行腳本。
我的問題是我不知道如何在數據表腳本中打印我在原始腳本中使用的變量的值。我嘗試使用expr,eval,...
下面的例子清楚地顯示了它:我嘗試保存一個DataTableScript,它根據“mylist”生成一個簡單的圖形。但如何保存“mylist”中包含的真實字符串?
謝謝你的幫助。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
mylist = {"sex" , "age"};
Graph = Variability Chart(
Y( :weight ),
X( eval(mylist) ),
Max Iter( 100 ),
Std Dev Chart( 0 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 1 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
);
dt << New Script(
"Test",
Variability Chart(
Y( :weight ),
X( Eval(mylist) ),
Max Iter( 100 ),
Std Dev Chart( 0 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 1 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
);
);Re:如何在數據表腳本中存儲評估列表這是一種可以將表達式放在一起的方法
NamesDefaultToHere(1);
CurrentDataTable(Open( "$SAMPLE_DATA/Big Class.jmp" ));
// Expression that makes a variability chart
makeVC =
Expr(
vc = CurrentDataTable() << Variability Chart(
Y(:weight),
X(TBD),
Max Iter( 100 ),
Std Dev Chart( 0 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 1 ),
Points Jittered( 1 ),
Show Box Plots( 1 )
);
);
makeBiv = Expr(Bivariate( Y( :height ), X( :weight ) ));
// Put the required 'x' values in 'makeVC'
mylist = {"sex" , "age"};
SubstituteInto(makeVC, Expr(TBD), Eval(myList));
newexpr = expr(tbd; tbd2);
substituteinto(newexpr, expr(tbd), nameexpr(makevc),
expr(tbd2), nameexpr(makeBiv)
);Re:如何在數據表腳本中存儲評估列表嗨,
關於這個問題,我還有一個額外的問題:
由於幾個原因,我需要稍微修改saveScript表達式:
我想添加幾行代碼,如:
dt << Clear Select;
dt << Clear Row States;
dt << Select Where( ...);
dt2 = dt << subset ....;
然後我將新腳本保存在dt2中。
我試圖追加,或連接2個表達式,但它不起作用:(
有幫助嗎?
Re:如何在數據表腳本中存儲評估列表SubstitueInto完成這項工作!
非常感謝
Re:如何在數據表腳本中存儲評估列表我不能:列表是腳本的結果
Re:如何在數據表腳本中存儲評估列表只需將列表定義包含在表腳本中:
dt << New Script(
"Test",
mylist = {"sex" , "age"};
Variability Chart(
Y( :weight ),
X( Eval(mylist) ),
Max Iter( 100 ),
Std Dev Chart( 0 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 1 ),
Points Jittered( 1 ),
Show Box Plots( 1 ),
);
);Re:如何在數據表腳本中存儲評估列表我傾向於(嘗試)避免代碼重複(對於任何編程語言中的代碼的可維護性而言都是壞事),並堅持使用我熟悉的一些設計模式。所以,按照這種精神,我會這樣做,如下所示。但我相信還有很多其他方法。
NamesDefaultToHere(1);
CurrentDataTable(Open( "$SAMPLE_DATA/Big Class.jmp" ));
// Expression that makes a variability chart
makeVC =
Expr(
vc = CurrentDataTable() << Variability Chart(
Y(:weight),
X(TBD),
Max Iter( 100 ),
Std Dev Chart( 0 ),
Show Range Bars( 0 ),
Show Grand Median( 0 ),
Std Dev Chart( 1 ),
Points Jittered( 1 ),
Show Box Plots( 1 )
);
);
// Put the required 'x' values in 'makeVC'
mylist = {"sex" , "age"};
SubstituteInto(makeVC, Expr(TBD), Eval(myList));
// Make the chart
makeVC;
// Now save the script that makes the chart using a similar method to the above
saveScript = Expr(CurrentDataTable() << New Script("My Variability Chart", TBD));
SubstituteInto(saveScript, Expr(TBD), NameExpr(makeVC));
saveScript;