如何使 for 循环仅对特定行集起作用你好,
我正在尝试使用公式来操作数据表,但我只希望读取几行。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
For( i = r[1], i <= r, i++,
:HeadIC[i] = :HeadIC[i]/2
);
Show(r);
我该如何做才能让它只针对那些选定的行进行迭代?
消费者和市场研究大规模定制回复:如何使 for 循环仅适用于特定的一组行像这样?
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
For Each Row( If ( :Make == "Mazda", :HeadIC = :HeadIC/2 ));
(很抱歉格式化,但我似乎从来没有让这些“插入脚本”按钮工作......)
回复:如何使 for 循环仅适用于特定的一组行在您的示例中,由于您使用行号制作了向量,因此您还可以使用“For Each()”。这会更快,尤其是对于较大的数据表(可能行)。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
for each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);
回复:如何使 for 循环仅适用于特定的一组行请为我揭开这个神秘面纱:
for each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);
// specifically, where do {cr,ii} come from and what do they do?
不是码农。 在脚本索引中找不到这个。 尚未检查脚本指南。
回复:如何使 for 循环仅适用于特定的一组行嗨,我不确定如何使用该功能,我在脚本索引中找不到它,你能举个例子吗? 当我尝试运行您提供的代码时,会弹出错误。
回复:如何使 for 循环仅适用于特定的一组行For Each() 是 JMP16 中引入的新函数,因此如果您使用的是旧版本的 JMP,您将不会在脚本索引中找到它(并且会出错)。 如果您愿意,可以将其转换为 for 循环:
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
r = Current Data Table() << Get rows where( :Make == "Mazda");
/*For Each({cr,ii}, r,
:headic[cr] = :headic[cr]/2
);*/
For(ii = 1, ii <= N Items(r), ii++,
cr = r[ii];
:headic[cr] = :headic[cr]/2;
);
For Each(names, container, locals, body) (jmp16 help)
回复:如何使 for 循环仅适用于特定的一组行那很奇怪。 两者对我来说都很好。 再次尝试将每个解决方案的完整代码发布到单独的脚本窗口中。 关闭其他所有内容。 首先从一个脚本窗口运行代码,确认代码完成了它应该做的事情。 然后,再次关闭除包含您仍需要测试的代码的其他脚本窗口之外的所有内容。