1

我刚刚开始编写 JMP 脚本,并且无法找到在不手动循环的情况下在一系列列上执行函数的语法。我试图在一行中做一个简单的 sum(),但想跳过前 5 列。我尝试了以下代码的各种安排。

dt1=open();
colSize=ncol(dt1);
Show(colSize);
dt1 << new column("is_empty",numeric, formula(isMissing(sum(/*column(5):colSize */)))),EvalFormula);

我愿意事先创建一个列表,但还没有找到如何在不手动循环的情况下动态创建一个列表(前 5 列始终相同,但列的数量/名称会有所不同)。

4

1 回答 1

0

您可以这样做,Summation只需从手动循环中删除一步:

Local({c}, Summation( c = 6,  N Col(), Column( c )[Row()] ));

或者您可以使用Get Column Names获取所有列,然后使用范围下标获取您想要的子集,然后将其传递给Sum

Sum( (Current Data Table() << Get Column Names())[6 :: N Col()] );
于 2016-01-08T14:03:44.610 回答