1 min read

Exercise 6: R numeric calculations

Find a function FUN that leads to the following output:

curve(FUN, from = -2, to = 2, n = 1000)
grid()

Hint: aim to keep the answer simple. The main logic of the function can often be summarized in a single line of R code.

Answer: click to reveal

We can write the function as follows:

  FUN <- function(x) {
    return(abs(x) %% 1)
  }

This function returns the fractional part of the absolute value of its input. For example:

  FUN(12.345)
  ## [1] 0.345
  FUN(-0.1234)
  ## [1] 0.1234

FUN can be defined equivalently as:

  FUN <- function(x) {
    return(abs(x) - floor(abs(x)))
  }

To check that this function is indeed a solution to the puzzle we can redraw the plot:

  curve(FUN, from = -2, to = 2, n = 1000)
  grid()

For a full collection of R programming tutorials and exercises visit my website at codeRtime.org and the codeRtime YouTube channel.