我一直在努力理解這些差異。 在我看來,至少從表面上看,他們完成了同樣的事情,但看看你如何選擇,在某些地方是有區別的。 如果你們好心的人不介意給我一些愚蠢的解釋,並舉一兩個例子,我將不勝感激。
D
謝謝馬克,
我根據您提供的資訊開始了一個新主題。 函數絕對是我需要理解的,因為它顯著減少了資料拉取腳本中的程式碼行。
連結在這裡https://community.jmp.com/t5/Discussions/How-to-loop-using-a-function/mp/74841
除了使用表達式的動態特性之外,我還將表達式視為建立子例程的另一種方法。 我可以使用函數或表達式作為子例程。 當我想要延遲計算、不需要參數並且不需要傳回結果時,我更喜歡表達式。 當我需要參數或傳回結果時,我更喜歡使用者函數。
感謝您的資訊。 我有 6 個以上的 include() 腳本,它們只不過是表達式。 我現在要試試這個功能..
我的看法:函數用於重複出現的程式碼。表達式用於將程式碼插入其他程式碼。
這是一個簡化的範例:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
onewayFunc = function({dt,Yaxis, Xaxis}, {Default Local},
plot = dt << Oneway(
Y( eval(Yaxis) ),
X( eval(Xaxis) )
);
return(plot);
);
Yaxis = expr({Column("height"), Column("weight")});
Xaxis = expr(Column("sex"));
onewayFunc(dt,Yaxis,Xaxis);
此程式碼可以在沒有表達式的情況下完成,但使用它作為範例。一般來說,我會說始終使用函數,直到遇到表達式可以完成工作的邊緣情況。
表達式還具有幾個有用的輔助函數,使其可用於算術和代數:
Names Default To Here( 1 );
Simplify Expr( Expr( 2 * 3 * a + b * (a + 3 - c) - a * b ) );
//6 * a + 3 * b + -1 * b * c