我一直在努力理解这些差异。 在我看来,至少从表面上看,他们完成了同样的事情,但看看你如何选择,某处有所不同。 如果你们好人不介意用一两个例子给我愚蠢的解释,我将不胜感激。
丁
谢谢马克,
我根据您提供的信息开始了一个新主题。 函数绝对是我需要了解的,因为它显着减少了我的数据拉取脚本中的代码行。
链接在这里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