Common new users frustations

1. Different versions of software
2. Data type problems (is that a string, number, or factor?)
3. Working directory problems: trying to read files that R "can't find"
• RStudio can help, and so do RStudio Projects
• discuss in Data Input/Output lecture
4. Typos (R is case sensitive, x and X are different)
• RStudio helps with "tab completion"
• discussed throughout

Getting Started

• Open RStudio
• Files –> New –> R Script
• Save the blank R script in a directory of your choosing

Commenting in Scripts

Add a comment header to day1.R :# is the comment symbol

#################
# Title: Demo R Script
# Author: Steve Bellan
# Purpose: Demonstrate comments in R
###################

# nothing to the right of the symbol is evaluated by R

# this # is still a comment
### you can use many #'s as you want

# sometimes you have a really long comment,
#    like explaining what you are doing
#    for a step in analysis.
# Take it to another line

Explaining output on slides

In slides, a command (we'll also call them code or a code chunk) will look like this

print("I'm code")
 "I'm code"

And then directly after it, will be the output of the code.
So print("I'm code") is the code chunk and  "I'm code" is the output.

R as a calculator

2 + 2
 4
2 * 4
 8
2 ^ 3
 8

Note, when you type your command, R inherently thinks you want to print the result.

For now, let's ignore the . We'll return back to why R prints this in front of each object it prints later on.

R as a calculator

• The R console is a full calculator
• Try to play around with it:
• +, -, /, * are add, subtract, divide and multiply
• ^ or ** is power
• parentheses – ( and ) – work with order of operations

R as a calculator

2 + (2 * 3)^2
 38
(1 + 3) / 2 + 45
 47

R as a calculator

Try evaluating the following:

• 2 + 2 * 3 / 4 -3
• 2 * 3 / 4 * 2
• 2^4 - 1
• You can create variables from within the R environment and from files on your computer
• R uses "=" or "<-" to assign values to a variable name
• Variable names are case-sensitive, i.e. X and x are different
x = 2 # Same as: x <- 2
x
 2
x * 4
 8
x + 2
 4

R variables

• The most comfortable and familiar class/data type for many of you will be data.frame
• You can think of these as essentially Excel spreadsheets with rows (usually subjects or observations) and columns (usually variables)

R variables

• data.frames are somewhat advanced objects in R; we will start with simpler objects;
• Here we introduce "1 dimensional" classes; often referred to as 'vectors'
• Vectors can have multiple sets of observations, but each observation has to be the same class.
class(x)
 "numeric"
y = "hello world!"
print(y)
 "hello world!"
class(y)
 "character"

R variables

Try assigning your full name to an R variable called name

R variables

Try assigning your full name to an R variable called name

name = "Steve Bellan"
name
 "Steve Bellan"

The 'combine' function

The function c() collects/combines/joins single R objects into a vector of R objects. It is mostly used for creating vectors of numbers, character strings, and other data types.

x <- c(1, 4, 6, 8, 1, 1, 3, 4)
x
 1 4 6 8 1 1 3 4
class(x)
 "numeric"

The 'combine' function

Try assigning your first and last name as 2 separate character strings into a single vector called name2

The 'combine' function

Try assigning your first and last name as 2 separate character strings into a length-2 vector called name2

name2 = c("Steve","Bellan")
name2
 "Steve"  "Bellan"

R variables

length(): Get or set the length of vectors (including lists) and factors, and of any other R object for which a method has been defined.

length(x)
 8
y
 "hello world!"
length(y)
 1

R variables

What do you expect for the length of the name variable? What about the name2 variable?

What are the lengths of each?

R variables

What do you expect for the length of the name variable? What about the name2 variable?

What are the lengths of each?

length(name)
 1
length(name2)
 2

R variables

You can perform functions to entire vectors of numbers very easily.

x + 2
  3  6  8 10  3  3  5  6
x * 3
  3 12 18 24  3  3  9 12
x + c(1, 2, 3, 4)
  2  6  9 12  2  3  6  8

R variables

But things like algebra can only be performed on numbers.

> name2 + 4
 Error in name2 + 4 : non-numeric argument
to binary operator

R variables

And save these modified vectors as a new vector.

y = x + c(1, 2, 3, 4)
y 
  2  6  9 12  2  3  6  8

Note that the R object y is no longer "Hello World!" - It has effectively been overwritten by assigning new data to the variable

R variables

• You can get more attributes than just class. The function str gives you the structure of the object.
str(x)
 num [1:8] 1 4 6 8 1 1 3 4
str(y)
 num [1:8] 2 6 9 12 2 3 6 8

This tells you that x is a numeric vector and tells you the length.

Review

• Creating a new script
• Using R as a calculator
• Assigning values to variables
• Performing algebra on numeric variables