3.2 Mathematical Operations in R

We will use R for this course, and these operations are all available with R code, allowing R to become a calculator for you. Here are some examples applying the tools above.

3.2.1 PEMDAS

((1+2)^3)^2 
[1] 729
1 + (2^3)^2 
[1] 65

3.2.2 Exponents

You can compare the computation below to match with the rules above. Note how the caret ^ symbol is used for exponents, and the asterisk * is used for multiplication. We also have a function sqrt() for taking the square root.

## Let's say a = 4 for our purposes
a <- 4
## And let's say k= 3 and l=5, b=2
k <- 3
l <- 5
b <- 2
  • \(a^0 = 1\)
  • \(a^1 = a\)
a^0
a^1
[1] 1
[1] 4

Note how we use parentheses in R to make it clear that the exponent includes not just k but (k + l)

  • \(a^k * a^l = a^{k + l}\)
a^k * a^l 
a^(k + l)
[1] 65536
[1] 65536

Note how we use the asterisk to make it clear we want to multiply k*l

  • \((a^k)^l = a^{kl}\)
(a^k)^l
a^(k*l)
[1] 1073741824
[1] 1073741824
  • \((\frac{a}{b})^k = (\frac{a^k}{b^k})\)
(a / b)^k
(a ^k)/(b^k)
[1] 8
[1] 8
  • \(a^{-k} = \frac{1}{a^k}\)
a^(-k) 
1 / (a^k)
[1] 0.015625
[1] 0.015625
  • \(a^{1/2} = \sqrt{a}\)
a^(1/2) 
sqrt(a)
[1] 2
[1] 2

3.2.3 Summations

Summations and products are a little more nuanced in R, depending on what you want to accomplish. But here is one example.

Let’s take a vector (think a list of numbers) that goes from 1 to 4. We will call it ourlist.

ourlist <- c(1,2,3,4)
ourlist
## An alternative is to write this: ourlist <- 1:4
[1] 1 2 3 4

Now let’s do \(\sum_{i = 1}^4 (i + 1)^2 = (1 +1)^2 + (1+2)^2 + (1 + 3)^2 + (1 + 4)^2 = 54\)

In R, when you add a number to a vector, it will add that number to each entry in the vector. Example

ourlist + 1
[1] 2 3 4 5

We can use that now to do the inside part of the summation. Note: the exponent works the same way, squaring each element of the inside expression.

(ourlist + 1)^2
[1]  4  9 16 25

Now, we will embed this expression inside a function in R called sum standing for summation. It will add together each of the inside components.

sum((ourlist + 1)^2)
[1] 54

If instead we wanted the product, multiplying each element of the inside together, we could use prod(). We won’t use that function very much in this course.

3.2.4 Logarithms

R also has functions related to logarithms, called log() and exp() for the for the natural base \(e\). By default, the natural exponential is the base in the log() R function.

  • \(\log x = 8 \rightarrow e^8 = x\)
exp(8)
[1] 2980.958
log(2980.958)
[1] 8

Note that R also has a number of built-in constants, like pi.

  • \(e^\pi = y \rightarrow \log y = \pi\)
exp(pi)
[1] 23.14069
log(23.14069)
[1] 3.141593
  • \(\log (a \times b) = \log a + \log b\)
log(a * b)
log(a) + log(b)
[1] 2.079442
[1] 2.079442

Let’s treat \(n=3\) in this example and enter 3 directly where we see \(n\) below. Alternatively you could store 3 as n, as we did with the other letters above.

  • \(\log a^n = n \log a\)
log(a ^ 3)

3 * log(a)
[1] 4.158883
[1] 4.158883
  • \(\log \frac{a}{b} = \log a - \log b\)
log(a/b)
log(a) - log(b)
[1] 0.6931472
[1] 0.6931472