## Common new users frustations

1. Different versions of software
2. Data type problems (is that a string or a number?)
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

## 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.

## 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

## Commenting in Scripts

# is the comment symbol

# this is a comment

# nothing to its right is evaluated

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

1 + 2 # Can be the right of code
 3

## R variables

• 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 = "John Muschelli"
name
 "John Muschelli"

## 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)
x
 1 4 6 8
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("John","Muschelli")
name2
 "John"      "Muschelli"

## 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)
 4
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
x * 3
  3 12 18 24
x + c(1, 2, 3, 4)
  2  6  9 12

## 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

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:4] 1 4 6 8
str(y)
 num [1:4] 2 6 9 12

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