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>
自動化和腳本編寫消費者和市場研究數據存取質量和工藝工程