具有多个列的汇总函数全部,
我正在尝试编写一个脚本来获取观察计数,可能是 1 列或多列(由用户输入确定)。 我可以让脚本为一列工作,但不能为两列或更多列工作。 如何调整 summarize 函数的 by step 中的代码以处理 1+ 列?
以下是脚本示例:
varName = VarList <<GET selected="">0,
summarize(dt, cat = by(Column(dt,varName)),c=count);
//do other things
);
</GET>
谢谢!
莎拉
回复:按列汇总函数对于 varname 变量的混淆,我们深表歉意。 你没看错——它是一个列名列表,取决于用户从 GUI 中输入的内容(即 varList——一个列列表框)。 你已经解决了我的问题。 当它是一个简单的修复时喜欢它。
那么,对于我未来的知识,任何时候我想在 JSL 的函数中引用数据表列名,事情应该与它周围的 eval() 命令一起工作? 我似乎总是对此有疑问 - 特别是在编码图形时。
非常感谢!
莎拉
回复:按列汇总函数您的帖子中没有足够的信息来确定我知道问题出在哪里。 了解什么是 VarList 以及 <
dt=open("$SAMPLE_DATA\Big Class.jmp");
varname={:age, :sex};
如果是这样,那么您需要在 Summarize() 函数中将 use Eval() 放在 varname 周围,如下所示:
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
varname = {:age, :sex};
//varName = VarList <<GET selected=""> 0,
Summarize( dt, cat = by( Eval( varname ) ), c = count );
//do other things
);</GET>