Using R as a Calculator

One of the most basic ways to use R is as a calculator. We can enter many math functions directly into the R Console. We will start to look at the various ways in which we can use R.

Arithmetic Operators

R can handle most simple types of math operators.

Operator Description
+ Addition
- Subtraction
* Multiplication
/ Division
^ or ** Exponentiation

For example:

# Addition
5+4
## [1] 9
# Subtraction
124 - 26.82 
## [1] 97.18
# Multiplication
5*4
## [1] 20
# Division
35/8
## [1] 4.375

More Math functions.

We can also use many other math functions. All of these are included in base R without any extra packages.

# Exponentials
3^(1/2)
## [1] 1.732051
# Exponential Function
exp(1.5)
## [1] 4.481689
# Log base e
log(4.481689)
## [1] 1.5
# Log base 10
log10(1000)
## [1] 3

On Your Own: Swirl Practice

In order to learn R you must do R. Follow the steps below in your RStudio console:

  1. Run this command to pick the course:
swirl()

You will be promted to choose a course. Type whatever number is in front of 01 Getting Started. This will then take you to a menu of lessons. For now we will just use lesson 2. Type 2 to choose R as Calculator then follow all the instructions until you are finished.

Once you are finished with the lesson come back to this course and continue.

Logical Operators

Another important feature of R is the ability to use logic. This is not unique to R as all programming languages can do this, but it will be extremely useful when working with data.

Operator Description
< Less Than
> Greater Than
<= Less Than or Equal To
>= Greater Than or Equal To
== Exactly Equal To
!= Not Equal To
!a Not a
a&b a AND b

We can then see an example of this:

a <- c(1:12)

If we wanted to know where \(a>9\) or where \(a<4\) we would expect to see the values: 1 2 3 10 11 12.

Having R do this

a
##  [1]  1  2  3  4  5  6  7  8  9 10 11 12
a>9
##  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [12]  TRUE

We can see that what R gives is are Boolean values as to whether or not each element of a is greater than 9. Similarly:

a<4
##  [1]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [12] FALSE

One simple thing we might try is to just combine these 2 values into a conditional

a>9 | a<4
##  [1]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
## [12]  TRUE

This again just gives us Booleans and not necessarily the values that we were hoping to see. We use this to index a in the following manner

a[a>9 | a<4]
## [1]  1  2  3 10 11 12

We will look at indexing with much further detail as we move through this course.


On Your Own: Swirl Practice

In order to learn R you must do R. Follow the steps below in your RStudio console:

  1. Run this command to pick the course:
swirl()

You will be promted to choose a course. Type whatever number is in front of 01 Getting Started. This will then take you to a menu of lessons. For now we will just use lesson 3. Type 3 to choose Logic then follow all the instructions until you are finished.

Once you are finished with the lesson come back to this course and continue.

Further Operators

There are other operators that we will use that are not necesssarily mathematical in nature. Each one of them is crucial for the use of R.

Description R Symbol Example
Comment # # This is a comment
Assignment <- x <- 5
Assignment -> 5 -> x
Assigment = x = 5
Concatenation operator c c(1,2,4)
Modular %% 25 %% 6
Sequence from a to b by h seq seq(a,b,h)
Sequence Operator : 0:3

Quick Check Practice


# This will get executed each time the exercise gets initialized
b = 6


# Create a variable a, equal to 5
# Do this by typing: a <- 5 # Square a


# Create a variable a, equal to 5
a <- 5 # Square a a^2


test_object("a")
test_output_contains("25", incorrect_msg = "Make sure to print `a`")
success_msg("Great!")

Use the assignment operator (<-) to create the variable a.

Math Functions in R

We also have access to a wide variety of mathematical functions that are already built into R.

Description R Symbol
Square Root sqrt
floor(x) floor
\ceil(x) ceiling
Logarithm log
Exponential function, e^x exp
Factorial, ! factorial

Quick Check Practice


b <- NA


# Create a variable b, equal to 4
# What is the log of b?
# what is the exponential of the log of b?


# Create a variable b, equal to 4
b <- 4
# What is the log of b?
log(b)
# what is the exponential of the log of b?
exp(log(b))


test_object("b")
test_function("log", args = "x")
test_function("exp", args="x")
test_output_contains("1.386", incorrect_msg = "Did you take the logarithm of b?")
test_output_contains("4", incorrect_msg = "Did you take the exponential of the logarithm of b?")
test_error()
success_msg("Great job!")

Use the assignment operator (<-) to create the variable a.