Re: 增加 for 循环时的下标范围问题你好,
我认为您的问题是每次循环迭代后 N Cols (dt) 都会增加。 因此,您的索引值“i”超过了您的 collist 列表中的元素数。
我建议在循环外捕获 dt 中的列数并将其用作固定限制。
path = "my file path with filename.jmp";
dt= open(path);
collist = dt <<GET column="" names=""></GET>
值得注意的是,我不确定为什么反向循环有效。 你应该遇到与你的 collist 变量类似的问题。
如果这能解决您的问题,请告诉我们。
最好的,
TS
Re: 增加 for 循环时的下标范围问题嗨,
是的,错误消失了。 但是,我总是使用 i<= N Cols (dt) 并且完全没有问题。 我不明白为什么在这种情况下同样的方法失败了?
Re: 增加 for 循环时的下标范围问题@Thierry_S反向循环在循环开始时捕获 ncols(dt),恰好一次。
@达达瓦索佐
- 反向循环不完全相同,因为它使用 >colnumber+1 并且可能应该 >=colnumber+1 以匹配非工作正向循环。
- 在正向循环中,ncols(dt) 每次循环都会重新求值,并且不断变大,但是 collist 并没有变大,所以最终下标失败。
我喜欢@Thierry_S解决方案。
增加for循环时下标范围问题当使用递增的 for 循环执行简单的新列 () 时,出现错误“访问或评估 'collist[ /*###*/i]' 、 collist[/*###*/i] 时的下标范围”。 我能够使用递减 for 循环来解决它。 但是,我想创建按递增 for 循环排序的列。 我不明白在此处使用增加 for 循环时导致错误的原因。 有人可以建议我如何在这里使用增加 for 循环吗?如果可能的话,有人可以帮助解释为什么增加 for 循环会发生错误吗?
path = "my file path with filename.jmp";
dt= open(path);
collist = dt <<GET column="" names="">colnumber+1,i--, fixed issue but created column order inverted
dt <<NEW column=""></NEW></GET>
自动化和脚本编写消费者和市场研究数据存取质量和工艺工程