27.8 If-Else Issue

20200105

Try typing the following code into the R console.

if (TRUE)
{
  seed <- 42
}
else
{
  seed <- 666
}

After the first closing brace the interpreter identifies and executes a syntactically valid statement (if with no else). The following else is then a syntactic error.

Error: unexpected 'else' in "else"

> source("examples.R")
Error in source("examples.R") : tmp.R:5:1: unexpected 'else'
4: }
5: else
   ^

This is not an issue when embedding the if statement inside a block of code as within curly braces since the text we enter is not parsed until we hit the final closing brace.

{
  if (TRUE)
  {
    seed <- 42
  }
  else
  {
    seed <- 666
  }
}

Another solution is to move the else to the line with the closing braces to inform the interpreter that we have more to come:

if (TRUE)
{
  seed <- 42
} else
{
  seed <- 666
}


If you find this curated material useful then you can consider a donation to support it's ongoing availability and give you access to the PDF version of this book. The material has been scoped up by Generative AI without permission or any kind of recompense so do consider a donation if you can afford it. Unlike Generative AI your access to this materials is freely given. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Togaware has a 30 year tradition of making popular open source software which includes sold privacy preserving productivity apps, rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0