You are absolutly right! I can use If(!cond) inside the loop.

Thank you!


2014-02-11 12:43 GMT+01:00 Duncan Murdoch <murdoch.duncan@gmail.com>:

> On 14-02-11 5:30 AM, Marc Marí Dell'Olmo wrote:
>
>> Dear all,
>>
>> I want to do a loop with foreach. But, I would like to include a condition
>> with "next" to don't loop over some elements.
>>
>> For example, I would like to translate this "for loop" to a "foreach
>> loop":
>>
>> for (i in 1:10) {
>>    for (j in 1:2) {
>>    ...
>>    if((i==2 & j==1) | (i==4 & j==3)) { next }
>>    ...
>>    }
>> }
>>
>> Foreach loop???
>>
>> foreach (i = c(1:10)) %do%{
>>    foreach (j = c(1:2)) %do%{
>>
>> #I don't know how to include a "next"!!
>> ...
>>
>>    }
>> }
>>
>
> I don't know the foreach package; you might want to direct your questions
> to its maintainer.  But you can always emulate next using an if(), e.g.
> with a regular for loop,
>
>
> for (i in 1:10) {
>   if (cond) next
>   ...
> }
>
> is the same as
>
>
> for (i in 1:10) {
>   if (!cond) {
>     ...
>   }
> }
>
> My vague understanding of the idea behind the foreach package is that the
> different runs through the loop can be run independently so they can be
> parallelized.  If that's the case, you might be able to evaluate cond for
> each i before the loop starts, and then do the equivalent of
>
> for (i in (1:10)[!cond]) {
>   ...
> }
>
> Duncan Murdoch
>
>
>
>> Thank you!
>>
>> Marc
>>
>>         [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/
>> posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>

	[[alternative HTML version deleted]]


