次のブレークで内部forループがキャンセルされるかどうかを確認できますか?
for (out in 1:n_old){
id_velho <- old_table_df$id[out]
for (in in 1:n)
{
id_novo <- new_table_df$ID[in]
if(id_velho==id_novo)
{
break
}else
if(in == n)
{
sold_df <- rbind(sold_df,old_table_df[out,])
}
}
}
あなたのコードは再現可能ではないので、私たちは確実に知ることはできませんが、これはhelp('break')
saysです:
breakは、for、while、またはrepeatループから抜け出します。制御は、最も内側のループの外側の最初のステートメントに転送されます。
はい、break
は現在のループのみを中断します。また、実際にそれを見ることができます:
for (i in 1:10)
{
for (j in 1:10)
{
for (k in 1:10)
{
cat(i," ",j," ",k,"\n")
if (k ==5) break
}
}
}
breakステートメントはfor (in in 1:n)
から抜け出します。
個人的には、breakステートメントに常に警戒しており、コンソールに印刷して、実際に正しいループから抜け出していることを再確認することにより、それを再確認します。したがって、テストする前に次のステートメントを追加します。これにより、最後に到達する前にブレークした場合に通知されます。ただし、変数n
をどのように処理しているかわからないので、それが役立つかどうかはわかりません。 n
に到達する前にブレークアウトするかどうかを事前に知っているテスト値をn
にします。
for (in in 1:n)
{
if (in == n) #add this statement
{
"sorry but the loop did not break"
}
id_novo <- new_table_df$ID[in]
if(id_velho==id_novo)
{
break
}
else if(in == n)
{
sold_df <- rbind(sold_df,old_table_df[out,])
}
}