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
}


Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes 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