2012-09-02 3 views
2

잠재적으로 상당히 오랜 시간이 걸릴 수있는 기능이 있습니다.일정한 시간이 지난 후 R이 반복되는 문을 닫습니다.

이 같은 이외의 기능을 정지시키는 청소기 방법이 있는지 궁금 해서요 :

repeat{ 

    time1 <- Sys.time() 
    myfunction(x,y,z,...) 
    time2 <- Sys.time() 
    if(time2 - time1 > my.time.limit) { 
    break 
    } 
} 
+2

이와 같은 상황에서 반복 루프 내에 time1을 정의 하시겠습니까? – Dason

답변

6

R.utils 패키지에 evalWithTimeout 기능이 있습니다. 다음과 같이 사용할 수 있습니다.

require("R.utils") 
evalWithTimeout({ 
    repeat{ 
    myfunction(x,y,z,...) 
    } 
}, timeout=my.time.limit, onTimeout="warning") 

example(evalWithTimeout)을 사용하면 다른 방법을 사용할 수 있습니다.

관련 문제