Development Tip

R : 루프 중단

yourdevel 2020. 12. 15. 19:52
반응형

R : 루프 중단


다음 브레이크가 내부 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').

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,])
    }
}

참조 URL : https://stackoverflow.com/questions/6082655/r-break-for-loop

반응형