R foreach stop iteration at i
up vote
0
down vote
favorite
I am using R package foreach
.
When bug exists in foreach
block, it's hard to re-occur it and hard to debug.
Take the following script as example.
I want to stop at i=4
to check what's wrong. However, it stops at i=10
.
Any solution?
library(foreach)
foreach(i = icount(10)) %do% {
if (i == 4){
e <- simpleError("test error")
stop(e)
}
}
r parallel-foreach
add a comment |
up vote
0
down vote
favorite
I am using R package foreach
.
When bug exists in foreach
block, it's hard to re-occur it and hard to debug.
Take the following script as example.
I want to stop at i=4
to check what's wrong. However, it stops at i=10
.
Any solution?
library(foreach)
foreach(i = icount(10)) %do% {
if (i == 4){
e <- simpleError("test error")
stop(e)
}
}
r parallel-foreach
2
Eventually you want usebreak
... (documentation offor (...)
)
– jogo
Nov 21 at 12:31
for (...)
is not suit. Becauseforeach
can be easily modified into parallel mode. modifyingforeach
intofor
every time when debugging, is a little tired.
– Dongdong Kong
Nov 21 at 13:02
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am using R package foreach
.
When bug exists in foreach
block, it's hard to re-occur it and hard to debug.
Take the following script as example.
I want to stop at i=4
to check what's wrong. However, it stops at i=10
.
Any solution?
library(foreach)
foreach(i = icount(10)) %do% {
if (i == 4){
e <- simpleError("test error")
stop(e)
}
}
r parallel-foreach
I am using R package foreach
.
When bug exists in foreach
block, it's hard to re-occur it and hard to debug.
Take the following script as example.
I want to stop at i=4
to check what's wrong. However, it stops at i=10
.
Any solution?
library(foreach)
foreach(i = icount(10)) %do% {
if (i == 4){
e <- simpleError("test error")
stop(e)
}
}
r parallel-foreach
r parallel-foreach
asked Nov 21 at 12:26
Dongdong Kong
197
197
2
Eventually you want usebreak
... (documentation offor (...)
)
– jogo
Nov 21 at 12:31
for (...)
is not suit. Becauseforeach
can be easily modified into parallel mode. modifyingforeach
intofor
every time when debugging, is a little tired.
– Dongdong Kong
Nov 21 at 13:02
add a comment |
2
Eventually you want usebreak
... (documentation offor (...)
)
– jogo
Nov 21 at 12:31
for (...)
is not suit. Becauseforeach
can be easily modified into parallel mode. modifyingforeach
intofor
every time when debugging, is a little tired.
– Dongdong Kong
Nov 21 at 13:02
2
2
Eventually you want use
break
... (documentation of for (...)
)– jogo
Nov 21 at 12:31
Eventually you want use
break
... (documentation of for (...)
)– jogo
Nov 21 at 12:31
for (...)
is not suit. Because foreach
can be easily modified into parallel mode. modifying foreach
into for
every time when debugging, is a little tired.– Dongdong Kong
Nov 21 at 13:02
for (...)
is not suit. Because foreach
can be easily modified into parallel mode. modifying foreach
into for
every time when debugging, is a little tired.– Dongdong Kong
Nov 21 at 13:02
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
One option to handle this is with a browser()
inside a tryCatch
as in:
foreach(i = icount(10)) %do% {
tryCatch(
if (i == 4){
e <- simpleError("test error")
stop(e)
},
error = function(e) browser()
)
}
This will produce a browser of the environment at the time of the error, which will allow you to inspect any objects and/or debug your code.
Your console will then look like the following and you can ask what the value of i is. Like this:
Browse[1]> i
[1] 4
It works. Thank you!
– Dongdong Kong
Nov 22 at 1:26
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
One option to handle this is with a browser()
inside a tryCatch
as in:
foreach(i = icount(10)) %do% {
tryCatch(
if (i == 4){
e <- simpleError("test error")
stop(e)
},
error = function(e) browser()
)
}
This will produce a browser of the environment at the time of the error, which will allow you to inspect any objects and/or debug your code.
Your console will then look like the following and you can ask what the value of i is. Like this:
Browse[1]> i
[1] 4
It works. Thank you!
– Dongdong Kong
Nov 22 at 1:26
add a comment |
up vote
1
down vote
One option to handle this is with a browser()
inside a tryCatch
as in:
foreach(i = icount(10)) %do% {
tryCatch(
if (i == 4){
e <- simpleError("test error")
stop(e)
},
error = function(e) browser()
)
}
This will produce a browser of the environment at the time of the error, which will allow you to inspect any objects and/or debug your code.
Your console will then look like the following and you can ask what the value of i is. Like this:
Browse[1]> i
[1] 4
It works. Thank you!
– Dongdong Kong
Nov 22 at 1:26
add a comment |
up vote
1
down vote
up vote
1
down vote
One option to handle this is with a browser()
inside a tryCatch
as in:
foreach(i = icount(10)) %do% {
tryCatch(
if (i == 4){
e <- simpleError("test error")
stop(e)
},
error = function(e) browser()
)
}
This will produce a browser of the environment at the time of the error, which will allow you to inspect any objects and/or debug your code.
Your console will then look like the following and you can ask what the value of i is. Like this:
Browse[1]> i
[1] 4
One option to handle this is with a browser()
inside a tryCatch
as in:
foreach(i = icount(10)) %do% {
tryCatch(
if (i == 4){
e <- simpleError("test error")
stop(e)
},
error = function(e) browser()
)
}
This will produce a browser of the environment at the time of the error, which will allow you to inspect any objects and/or debug your code.
Your console will then look like the following and you can ask what the value of i is. Like this:
Browse[1]> i
[1] 4
edited Nov 21 at 17:31
answered Nov 21 at 17:25
Ian Wesley
2,495525
2,495525
It works. Thank you!
– Dongdong Kong
Nov 22 at 1:26
add a comment |
It works. Thank you!
– Dongdong Kong
Nov 22 at 1:26
It works. Thank you!
– Dongdong Kong
Nov 22 at 1:26
It works. Thank you!
– Dongdong Kong
Nov 22 at 1:26
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53412022%2fr-foreach-stop-iteration-at-i%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
Eventually you want use
break
... (documentation offor (...)
)– jogo
Nov 21 at 12:31
for (...)
is not suit. Becauseforeach
can be easily modified into parallel mode. modifyingforeach
intofor
every time when debugging, is a little tired.– Dongdong Kong
Nov 21 at 13:02