如何使 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 循環僅適用於特定的一組行那很奇怪。 兩者對我來說都很好。 再次嘗試將每個解決方案的完整代碼發佈到單獨的腳本窗口中。 關閉其他所有內容。 首先從一個腳本窗口運行代碼,確認代碼完成了它應該做的事情。 然後,再次關閉除包含您仍需要測試的代碼的其他腳本窗口之外的所有內容。