Hello, I've noticed the following error using repeat{} / break in R 3.4.1 
running on Windows 10 and Windows Server 2008 (both 64-bit environments).

When running a repeat function, the break command causes an error message if 
the repeat command refers to code within a file, but does not produce an error 
if the code is contained within the repeat{} command.

For example, the following code runs fine:

x <- 1
y <- 5

repeat {
  if(x < y) {
    print("No Break Dance :-(")
    x = x + 1
  } else {
    print("Break Dance!")
    break
  }
}

[1] "No Break Dance :("
[1] "No Break Dance :("
[1] "No Break Dance :("
[1] "No Break Dance :("
[1] "No Break Dance :("
[1] "Break Dance!"
>

However, if I take the loop contents of the repeat{} function, and save them to 
a file (breakTest.R) that contains the following:

if(x < y) {
  print("No Break Dance :-(")
  x = x + 1
} else {
  print("Break Dance!")
  break
}

And then run the following code:

x <- 1
y <- 5

repeat{
  source("./breakTest.R")
}

I get the following error:

[1] "No Break Dance :("
[1] "No Break Dance :("
[1] "No Break Dance :("
[1] "No Break Dance :("
[1] "No Break Dance :("
[1] "Break Dance!"
Error in eval(ei, envir) : no loop for break/next, jumping to top level
>

This was not an issue with previous versions of R that I have used, including 
3.3.3.

Any suggestions? Is this a known bug with 3.4.1?

Cheers-
Peter



----------------------------------------------------------------
peter bosa
metro
modeling services
600 ne grand ave
portland, or  97232

peter.b...@oregonmetro.gov<mailto:peter.b...@oregonmetro.gov>
503.797.1771

metro | making a great place
www.oregonmetro.gov


        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to