我刚刚开始使用JMP脚本,并且无法在没有手动循环的情况下找到在一系列列上执行函数的语法。我试图在一行中做一个简单的求和(),但想跳过前5列。 我已尝试过以下代码的各种安排。
dt1=open();
colSize=ncol(dt1);
Show(colSize);
dt1 << new column("is_empty",numeric, formula(isMissing(sum(/*column(5):colSize */)))),EvalFormula);
我可以事先创建一个列表,但是还没有找到如何动态创建一个列表(前5列始终相同,但列数/名称不同),无需手动循环。
答案 0 :(得分: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()] );