Square root in R

R introduction Mathematical functions
Square root in R with sqrt()

The square root of a number is other number that multiplied by itself gives the first number. In R, you can make use of the sqrt function to compute the square root for a numeric value or vector.

Square root

If you want to calculate the square root of a number you just need to input that number to the sqrt function as follows:

sqrt(8)
2.828427

Keep in mind that you can also input a numeric vector, so the function will return the square root for each of the elements of that vector.

sqrt(c(10, 8, 16, 25))
3.162278 2.828427 4.000000 5.000000

The input value must be numeric or an error will arise indicating “Error in sqrt(”x”) : non-numeric argument to mathematical function”. If this error happens you will need to transform your input with the as.numeric function.

You can also compute the square root of a complex number or complex vector.

sqrt(8i)
2+2i

However, if you try to calculate the square root of a negative number the function will return a NaN and a warning will arise indicating “NaNs produced”.

sqrt(-1)
NaN
Warning message:
In sqrt(-1) : NaNs produced

In order to solve this issue you can use the abs function to compute the absolute value of the input value or values and then compute the square root of the positive numbers.

sqrt(abs(-1))
1

Note that it is not possible to calculate the square root of a factor. If you try to do so you will get an error with the message “Error in Math.factor(x) : ‘sqrt’ not meaningful for factors”.

x <- factor(c(3, 1, 6))

sqrt(x)
Error in Math.factor(x) : ‘sqrt’ not meaningful for factors

In order to solve this error you will need to transform you factor to numeric with the following line of code and then compute the square root of the numbers:

x <- factor(c(3, 1, 6))
x <- as.numeric(as.character(x))

sqrt(x)
1.732051 1.000000 2.449490

Plotting the square root in R

You can plot the square root for positive numbers using the following line of code. In this example we are plotting the square roots from 1 to 100.

plot(sqrt, 0, 100, col = 4, main = "sqrt(x)")

Compute and plot the square root in R with the sqrt function

Nth root

The square root of a number is the number raised to the nth power. For instance, the square root of 8 is \(\sqrt{8} = 8 ^ {1/2} = 2.828427\).

# Square root of 8
8 ^ (1/2)
sqrt(8) # Equivalent

If you want to compute the cube root of a number you just need to raise the value to the 1/3 power, as shown in the example below.

# Cube power of 8
8 ^ (1/3)
2

The following function can be used to compute the cube root of any numeric value or vector. Below is a visual representation of the cube root from 0 to 100.

# Cube root function
cube_root <- function(x) {
  
  return(x ^ (1/3))
}

plot(cube_root, 0, 100, col = 4, main = "Cubic root")

Compute the cube root in R

If you need to calculate the nth root of any number you can calculate the nth power by hand or create a function like the following to specify the input value and the desired power.

# Nth root function
nth_root <- function(x, nth) {
  # x: input value
  # nth: numeric value indicating the power (1/nth)
  return(x ^ (1/nth))
}

# Example
nth_root(8, nth = 4) # 1.681793