Data Camp: Introduction to R

Using my own data and examples

Chapter 1 - Basics

Assigning value to a variable

Use <- to assign values, strings etc to objects To “print” contents of objects/variables, enter their names in code block with each on its own line

# Create numeric, text & logical variables
v_numeric <- 50
v_text <- "cats"
v_logical <- TRUE
# Print values of variables
v_numeric
[1] 50
v_text
[1] "cats"
v_logical
[1] TRUE

Check class of variables

Use the class function with the variable name in parentheses class(var_name)

class(v_numeric)
[1] "numeric"
class(v_text)
[1] "character"
class (v_logical)
[1] "logical"

Doing math on variables

Create 2 variables containing numbers and perform math on them. my_cats <- 4 my_dogs <- 2 Assign sum of these and assign the result to my_pets

my_cats <- 4
my_dogs <- 2
my_pets = my_cats + my_dogs
my_pets
[1] 6

Chapter 2 - Vectors

Vectors can contain any number of elements that have the same type. When there is more than one element, you need to enclose them with c() and have the elements within the parentheses and separated by commas

Create vectors for a dataset containing five weeks of nutrition and sleep data

# Vector with names of weeks
nutrition_weeks <- c("Week 1","Week 2","Week 3","Week 4","Week 5")
nutrition_weeks
[1] "Week 1" "Week 2" "Week 3" "Week 4"
[5] "Week 5"
# Vectors with nutrients
nutrition_calories <- c(8926, 7768, 9043, 9406, 9640)
nutrition_carbs <- c(1257.6, 1183.5, 1315.3, 1393.5, 1491.7)
nutrition_protien <- c(470.7, 410.8, 416.9, 431.3, 386.1)
nutrition_fat <- c(218.5, 211.8, 282.1, 306.1, 270.3)
# Show contents of vectors
nutrition_calories
[1] 8926 7768 9043 9406 9640
nutrition_carbs
[1] 1257.6 1183.5 1315.3 1393.5 1491.7
nutrition_protien
[1] 470.7 410.8 416.9 431.3 386.1
nutrition_fat
[1] 218.5 211.8 282.1 306.1 270.3

Give names to the elements of the vectors using the names function. You can either do it with a list of items in the parentheses or with the name of a vector which contains the items * names(vector_name) <- c(“1st item“ , 2nd item“ …)() * names(vector_name) <- c(vector_containing_names)

# Vector containing names for vector elements is nutrition_weeks
names(nutrition_calories) <- c(nutrition_weeks)
names(nutrition_carbs) <- c(nutrition_weeks)
names(nutrition_protien) <- c(nutrition_weeks)
names(nutrition_fat) <- c(nutrition_weeks)

# Display vectors
nutrition_calories
Week 1 Week 2 Week 3 Week 4 Week 5 
  8926   7768   9043   9406   9640 
nutrition_carbs
Week 1 Week 2 Week 3 Week 4 Week 5 
1257.6 1183.5 1315.3 1393.5 1491.7 
nutrition_protien
Week 1 Week 2 Week 3 Week 4 Week 5 
 470.7  410.8  416.9  431.3  386.1 
nutrition_fat
Week 1 Week 2 Week 3 Week 4 Week 5 
 218.5  211.8  282.1  306.1  270.3 

Calculate totals for each nutrient over 5 weeks using the sum function total_vector <- sum(vector_name)

# Get totals for nutrients
total_calories <- sum(nutrition_calories)
total_carbs <- sum(nutrition_carbs)
total_protien <- sum(nutrition_protien)
total_fat <- sum(nutrition_fat)
# Display totals
total_calories
[1] 44783
total_carbs
[1] 6641.6
total_protien
[1] 2115.8
total_fat
[1] 1288.8

Define variables based on selected values within vectors new_variable <- vector_name[c(element #)]

# Calories from Weeks 1 and 3
week_1_3_calories <- nutrition_calories[c(1,3)]
week_1_3_protien <- nutrition_protien[c(1,3)]
week_1_3_fat <- nutrition_fat[c(1,3)]
week_1_3_calories
Week 1 Week 3 
  8926   9043 
week_1_3_protien
Week 1 Week 3 
 470.7  416.9 
week_1_3_fat
Week 1 Week 3 
 218.5  282.1 

Calculate averages of vector elements with mean function mean(vector_name)

#Calculate averages for each nutrient
mean(nutrition_calories)
mean(nutrition_carbs)
mean(nutrition_protien)
mean(nutrition_fat)
LS0tCnRpdGxlOiAiTGVhcm5pbmcgUiAtIEJhc2ljcyAmIFZlY3RvcnMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KIyBEYXRhIENhbXA6IEludHJvZHVjdGlvbiB0byBSCiMjIFVzaW5nIG15IG93biBkYXRhIGFuZCBleGFtcGxlcwoKIyBDaGFwdGVyIDEgLSBCYXNpY3MKCiMjIyBBc3NpZ25pbmcgdmFsdWUgdG8gYSB2YXJpYWJsZQpVc2UgPC0gdG8gYXNzaWduIHZhbHVlcywgc3RyaW5ncyBldGMgdG8gb2JqZWN0cwpUbyAicHJpbnQiIGNvbnRlbnRzIG9mIG9iamVjdHMvdmFyaWFibGVzLCBlbnRlciB0aGVpciBuYW1lcyBpbiBjb2RlIGJsb2NrIHdpdGggZWFjaCBvbiBpdHMgb3duIGxpbmUKYGBge3IgQXNzaWduIHZhbHVlcyB0byB2YXJpYWJsZXN9CiMgQ3JlYXRlIG51bWVyaWMsIHRleHQgJiBsb2dpY2FsIHZhcmlhYmxlcwp2X251bWVyaWMgPC0gNTAKdl90ZXh0IDwtICJjYXRzIgp2X2xvZ2ljYWwgPC0gVFJVRQojIFByaW50IHZhbHVlcyBvZiB2YXJpYWJsZXMKdl9udW1lcmljCnZfdGV4dAp2X2xvZ2ljYWwKYGBgCiMjIyBDaGVjayBjbGFzcyBvZiB2YXJpYWJsZXMKVXNlIHRoZSBjbGFzcyBmdW5jdGlvbiB3aXRoIHRoZSB2YXJpYWJsZSBuYW1lIGluIHBhcmVudGhlc2VzCmNsYXNzKHZhcl9uYW1lKQpgYGB7cn0KY2xhc3Modl9udW1lcmljKQpjbGFzcyh2X3RleHQpCmNsYXNzICh2X2xvZ2ljYWwpCmBgYAoKIyMjIERvaW5nIG1hdGggb24gdmFyaWFibGVzCkNyZWF0ZSAyIHZhcmlhYmxlcyBjb250YWluaW5nIG51bWJlcnMgYW5kIHBlcmZvcm0gbWF0aCBvbiB0aGVtLgpteV9jYXRzIDwtIDQKbXlfZG9ncyA8LSAyCkFzc2lnbiBzdW0gb2YgdGhlc2UgYW5kIGFzc2lnbiB0aGUgcmVzdWx0IHRvIG15X3BldHMKYGBge3IgUHV0IHN1bSBvZiAyIHZhcmlhYmxlIGludG8gbmV3IHZhcmlhYmxlfQpteV9jYXRzIDwtIDQKbXlfZG9ncyA8LSAyCm15X3BldHMgPSBteV9jYXRzICsgbXlfZG9ncwpteV9wZXRzCmBgYAojIENoYXB0ZXIgMiAtIFZlY3RvcnMKClZlY3RvcnMgY2FuIGNvbnRhaW4gYW55IG51bWJlciBvZiBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHNhbWUgdHlwZS4gV2hlbiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGVsZW1lbnQsIHlvdSBuZWVkIHRvIGVuY2xvc2UgdGhlbSB3aXRoIGMoKSBhbmQgaGF2ZSB0aGUgZWxlbWVudHMgd2l0aGluIHRoZSBwYXJlbnRoZXNlcyBhbmQgc2VwYXJhdGVkIGJ5IGNvbW1hcwoKQ3JlYXRlIHZlY3RvcnMgZm9yIGEgZGF0YXNldCBjb250YWluaW5nIGZpdmUgd2Vla3Mgb2YgbnV0cml0aW9uIGFuZCBzbGVlcCBkYXRhCmBgYHtyIFZlY3RvcnMgZm9yIG51dHJpdGlvbiBkYXRhfQojIFZlY3RvciB3aXRoIG5hbWVzIG9mIHdlZWtzCm51dHJpdGlvbl93ZWVrcyA8LSBjKCJXZWVrIDEiLCJXZWVrIDIiLCJXZWVrIDMiLCJXZWVrIDQiLCJXZWVrIDUiKQpudXRyaXRpb25fd2Vla3MKIyBWZWN0b3JzIHdpdGggbnV0cmllbnRzCm51dHJpdGlvbl9jYWxvcmllcyA8LSBjKDg5MjYsIDc3NjgsIDkwNDMsIDk0MDYsIDk2NDApCm51dHJpdGlvbl9jYXJicyA8LSBjKDEyNTcuNiwgMTE4My41LCAxMzE1LjMsIDEzOTMuNSwgMTQ5MS43KQpudXRyaXRpb25fcHJvdGllbiA8LSBjKDQ3MC43LCA0MTAuOCwgNDE2LjksIDQzMS4zLCAzODYuMSkKbnV0cml0aW9uX2ZhdCA8LSBjKDIxOC41LCAyMTEuOCwgMjgyLjEsIDMwNi4xLCAyNzAuMykKIyBTaG93IGNvbnRlbnRzIG9mIHZlY3RvcnMKbnV0cml0aW9uX2NhbG9yaWVzCm51dHJpdGlvbl9jYXJicwpudXRyaXRpb25fcHJvdGllbgpudXRyaXRpb25fZmF0CmBgYAoKR2l2ZSBuYW1lcyB0byB0aGUgZWxlbWVudHMgb2YgdGhlIHZlY3RvcnMgdXNpbmcgdGhlIG5hbWVzIGZ1bmN0aW9uLiBZb3UgY2FuIGVpdGhlciBkbyBpdCB3aXRoIGEgbGlzdCBvZiBpdGVtcyBpbiB0aGUgcGFyZW50aGVzZXMgb3Igd2l0aCB0aGUgbmFtZSBvZiBhIHZlY3RvciB3aGljaCBjb250YWlucyB0aGUgaXRlbXMKKiBuYW1lcyh2ZWN0b3JfbmFtZSkgPC0gYyjigJwxc3QgaXRlbeKAnCAsIDJuZCBpdGVt4oCcIC4uLikoKQoqIG5hbWVzKHZlY3Rvcl9uYW1lKSA8LSBjKHZlY3Rvcl9jb250YWluaW5nX25hbWVzKQpgYGB7ciBOYW1lIHRoZSBlbGVtZW50cyBvZiB2ZWN0b3JzfQojIFZlY3RvciBjb250YWluaW5nIG5hbWVzIGZvciB2ZWN0b3IgZWxlbWVudHMgaXMgbnV0cml0aW9uX3dlZWtzCm5hbWVzKG51dHJpdGlvbl9jYWxvcmllcykgPC0gYyhudXRyaXRpb25fd2Vla3MpCm5hbWVzKG51dHJpdGlvbl9jYXJicykgPC0gYyhudXRyaXRpb25fd2Vla3MpCm5hbWVzKG51dHJpdGlvbl9wcm90aWVuKSA8LSBjKG51dHJpdGlvbl93ZWVrcykKbmFtZXMobnV0cml0aW9uX2ZhdCkgPC0gYyhudXRyaXRpb25fd2Vla3MpCgojIERpc3BsYXkgdmVjdG9ycwpudXRyaXRpb25fY2Fsb3JpZXMKbnV0cml0aW9uX2NhcmJzCm51dHJpdGlvbl9wcm90aWVuCm51dHJpdGlvbl9mYXQKCmBgYAoKQ2FsY3VsYXRlIHRvdGFscyBmb3IgZWFjaCBudXRyaWVudCBvdmVyIDUgd2Vla3MgdXNpbmcgdGhlIHN1bSBmdW5jdGlvbgp0b3RhbF92ZWN0b3IgPC0gc3VtKHZlY3Rvcl9uYW1lKQpgYGB7ciBDYWxjdWxhdGUgdG90YWxzIGZvciBudXRyaWVudHN9CiMgR2V0IHRvdGFscyBmb3IgbnV0cmllbnRzCnRvdGFsX2NhbG9yaWVzIDwtIHN1bShudXRyaXRpb25fY2Fsb3JpZXMpCnRvdGFsX2NhcmJzIDwtIHN1bShudXRyaXRpb25fY2FyYnMpCnRvdGFsX3Byb3RpZW4gPC0gc3VtKG51dHJpdGlvbl9wcm90aWVuKQp0b3RhbF9mYXQgPC0gc3VtKG51dHJpdGlvbl9mYXQpCiMgRGlzcGxheSB0b3RhbHMKdG90YWxfY2Fsb3JpZXMKdG90YWxfY2FyYnMKdG90YWxfcHJvdGllbgp0b3RhbF9mYXQKCmBgYAoKRGVmaW5lIHZhcmlhYmxlcyBiYXNlZCBvbiBzZWxlY3RlZCB2YWx1ZXMgd2l0aGluIHZlY3RvcnMKbmV3X3ZhcmlhYmxlIDwtIHZlY3Rvcl9uYW1lW2MoZWxlbWVudCAjKV0KYGBge3IgRGVmaW5lIHZhcmlhYmxlcyBmcm9tIHZlY3RvcnN9CiMgQ2Fsb3JpZXMgZnJvbSBXZWVrcyAxIGFuZCAzCndlZWtfMV8zX2NhbG9yaWVzIDwtIG51dHJpdGlvbl9jYWxvcmllc1tjKDEsMyldCndlZWtfMV8zX3Byb3RpZW4gPC0gbnV0cml0aW9uX3Byb3RpZW5bYygxLDMpXQp3ZWVrXzFfM19mYXQgPC0gbnV0cml0aW9uX2ZhdFtjKDEsMyldCndlZWtfMV8zX2NhbG9yaWVzCndlZWtfMV8zX3Byb3RpZW4Kd2Vla18xXzNfZmF0CgpgYGAKCkNhbGN1bGF0ZSBhdmVyYWdlcyBvZiB2ZWN0b3IgZWxlbWVudHMgd2l0aCBtZWFuIGZ1bmN0aW9uCm1lYW4odmVjdG9yX25hbWUpCmBgYHtyIENhbGN1bGF0ZSBhbmQgZGlzcGxheSBhdmVyYWdlc30KI0NhbGN1bGF0ZSBhdmVyYWdlcyBmb3IgZWFjaCBudXRyaWVudAptZWFuKG51dHJpdGlvbl9jYWxvcmllcykKbWVhbihudXRyaXRpb25fY2FyYnMpCm1lYW4obnV0cml0aW9uX3Byb3RpZW4pCm1lYW4obnV0cml0aW9uX2ZhdCkKCmBgYAo=