foreach() % dopar %를 병렬 처리에 사용하는 것이 처음이며 오류 또는 경고 처리 방법에 대한 몇 가지 문제가 있습니다. 내가 foreach는() 내에서 내 사용자 지정 오류 메시지와 함께 시도()를 사용할 때R : foreach에서 오류 및 경고 메시지 표시 % dopar %
퍼센트 dopar %는 "기본"오류 메시지가 표시되지 않습니다 :이 경우
test <- function(x) { if (x==2) "a"/2 } foreach(i=1:3) %dopar% { tryout <- try(test(i)) if (class(tryout)=="try-error") print("Error!") }
을 " native "오류 메시지 :
Error in "a"/2 : non-numeric argument to binary operator
이 표시되지 않고 try() 오류 catch 중Error!
만 인쇄됩니다. 그러나 foreach() % dopar %를 사용하지 않으면 두 오류 메시지가 모두 인쇄됩니다. 그렇다면 두 오류 메시지를 모두 표시하는 방법은 무엇입니까? 추가 여부 에러 여부 경고가 존재하는 경우, 상기 경우- 는 경고 메시지가 동일의 foreach (는 실시 예) 상기와 같이 블록 인쇄 아래
test()
아니다 :test <- function(x) { if (x==2) warning("Warning!") }
그래서 경고를 표시하는 방법은 무엇입니까?
p.s. 나는 단순히 % dopa % 내에서 try (test (i))를 사용하면 "네이티브"오류 메시지와 경고가 인쇄되지만 실제 상황에서 내 자신의 오류 메시지를 포함하고 싶다는 것을 알았습니다. 또한 try()
대신 tryCatch()
을 사용해 보았지만 문제가 해결되지 않았습니다.
감사합니다.
출력을 원하는 병렬 백엔드에 알려야 할 수도 있습니다 (예 :'doSNOW'를 사용하는 경우'makeCluster'의'outfile = ""'). 자세한 내용은 [관련 질문] (http://stackoverflow.com/questions/10903787/)이 있습니다. –
문제 해결을위한 중요한 방향을 지적 해 주셔서 감사합니다. 지금 doSNOW를 사용하고 있지 않지만 그 부분을 조사하고 있습니다 ... –