Atomic Types, Type Coercion, and Logical/Relational Operators

  1. Without running it, what does this code return?
    • typeof(c(1, 4, 2))
    • is.logical(FALSE)
    • as.logical(as.numeric("1234"))
    • as.logical(as.character(1234))
    • typeof(c(1L, 4L, 2L))
    • typeof(c(6L, 4, 2L, 40L))
    • as.logical(1)
    • TRUE + FALSE + FALSE^FALSE
    • FALSE + 1 + (T^999 * 0.5) %/% 3
    • !TRUE * 4 %/% 2
    • !0
    • !1
    • !-29
    • typeof(c(1, 1.0, "1.0"))
    • as.numeric(c(1, 1.0, "1.0", TRUE))
    • TRUE && !FALSE
    • 5 > 2 * 3 || 9 == 19%/%2
    • 0 && 0
    • as.numeric(9 != 9 && 10 > 11)
    • !is.integer(650)
  2. Use sprintf() to a make a Mad Libs style paragraph, incorporating all of the variables in the list below (in no particular order). In other words, you are constructing the shell of the sentence with “blanks” where these words/numbers can be inserted, regardless of their value. All words are lower case (don’t worry about capitalization for now).
    • exclamation (e.g., “oh no!”)
    • plural_noun (e.g., “words”)
    • verb (e.g., “write”)
    • adverb (e.g., “slowly”)
    • singular_noun (e.g., “word”)
    • verb_ing (e.g., “sitting”)
    • adjective (e.g., “smart”)
    • food_item (e.g., “rice”)
    • verbing_in_place (e.g., “eating in Brazil”)
    • integer (e.g., 1)
    • double (e.g., 1.2345678)

    Write this same exact sentence using paste()

    Write this same exact sentence using glue::glue() (you will need to install the glue package if it is not already installed)

  3. The sleep dataset in R (see help(sleep)) are data from within-subjects (ID) experimental research showing the effect of two different drugs (group) on change in sleep (extra). The group variable is currently coded as 1 and 2, which isn’t particularly informative. Change group to be a factor and give it labels (i.e., drug names) of whatever you want! (Note that group is already factor in the data with uninformative labels. For this problem, assume it is a numeric variable).

Coding with Vectors

  1. Use c() to create the following vector
## [1] "Apples"    "Oranges"   "Bananas"   "Ice Cream"
  1. Use : to create an integer vector of the numbers -6 to 20
##  [1] -6 -5 -4 -3 -2 -1  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18
## [26] 19 20
  1. Use seq() to create a vector of 10 numbers evenly spaced from 0 to 27.
##  [1]  0  3  6  9 12 15 18 21 24 27
  1. Use seq() to create a vector of numbers 1 through 69 by 17
## [1]  1 18 35 52 69
  1. Use seq_len() to create an integer vector of the numbers 1 through 7
## [1] 1 2 3 4 5 6 7
  1. Use rep() to create a character vector filled with 25 NAs
##  [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
  1. Use rep() to create a vector with two values ("group1" and "group2") repeated 10 times each as follows
##  [1] "Group1" "Group1" "Group1" "Group1" "Group1" "Group1" "Group1" "Group1"
##  [9] "Group1" "Group1" "Group1" "Group1" "Group1" "Group1" "Group1" "Group1"
## [17] "Group1" "Group1" "Group1" "Group1" "Group1" "Group1" "Group1" "Group1"
## [25] "Group1" "Group2" "Group2" "Group2" "Group2" "Group2" "Group2" "Group2"
## [33] "Group2" "Group2" "Group2" "Group2" "Group2" "Group2" "Group2" "Group2"
## [41] "Group2" "Group2" "Group2" "Group2" "Group2" "Group2" "Group2" "Group2"
## [49] "Group2" "Group2"
  1. Use rep() to create a character vector with 14 elements where each even numbered element has the value "even" and each odd numbered element has the value "odd"
##  [1] "odd"  "even" "odd"  "even" "odd"  "even" "odd"  "even" "odd"  "even"
## [11] "odd"  "even" "odd"  "even"
  1. Use LETTERS and [ ] to create a vector of the last 10 capital letters
##  [1] "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
  1. Use letters and [ ] to get every 3rd letter of the lower-case alphabet
## [1] "c" "f" "i" "l" "o" "r" "u" "x"
  1. Create (1) a vector with letters 1 through 9, (2) another vector with LETTERS 10 through 21, and (3) another vector with letters 22 through 26. Then, create a vector called alPHAbet using c() to combine these three vectors together.

  2. Use c() and [ ] to combine the first 4 element of letters with the 4th, 5th, and 9th, elements of LETTERS into a vector called my_letters

## [1] "a" "b" "c" "d" "D" "E" "I"
  1. Use rev() to reverse the order of letters
##  [1] "z" "y" "x" "w" "v" "u" "t" "s" "r" "q" "p" "o" "n" "m" "l" "k" "j" "i" "h"
## [20] "g" "f" "e" "d" "c" "b" "a"
  1. Create a numeric vector called numbers that is 10 elements long with any numbers you would like. Then add 3 to each odd numbered element (i.e. elements 1, 3, 5, etc.) and 7 to each even numbered element.
##  [1] 101 102 103 104 105 106 107 108 109 110
##  [1] 104 109 106 111 108 113 110 115 112 117
  1. Below is a vector of forcasted temperatures in degrees celcius in Seattle Friday (6/25/21) to Friday (7/2/21). Use the following formula to convert this vector to farenheit and save it in a new vector called tempsF.

\[^{\circ}F=^{\circ}C\times\frac{9}{5}+32\]

tempsC <- c(29, 35, 38, 41, 31, 28, 29, 29)
## [1]  84.2  95.0 100.4 105.8  87.8  82.4  84.2  84.2
  1. Give tempsF names that correspond with the days of the week. The first element (29) is Friday, the second (35) is Saturday, etc.
##    Friday  Saturday    Sunday    Monday   Tuesday Wednesday  Thursday    Friday 
##      84.2      95.0     100.4     105.8      87.8      82.4      84.2      84.2
  1. Using relational operator(s), subset tempsF to days where it was over 100 °F
## Sunday Monday 
##  100.4  105.8

Coding with Matrices

  1. Use matrix() to create a matrix called my_matrix with 10 rows and four columns filled with NA
##       [,1] [,2] [,3] [,4]
##  [1,]   NA   NA   NA   NA
##  [2,]   NA   NA   NA   NA
##  [3,]   NA   NA   NA   NA
##  [4,]   NA   NA   NA   NA
##  [5,]   NA   NA   NA   NA
##  [6,]   NA   NA   NA   NA
##  [7,]   NA   NA   NA   NA
##  [8,]   NA   NA   NA   NA
##  [9,]   NA   NA   NA   NA
## [10,]   NA   NA   NA   NA
  1. Create a vector called vec_num of 10 numbers evenly spaced from 0 to 15. Then assign vec_num to the first column of my_matrix.
##            [,1] [,2] [,3] [,4]
##  [1,]  0.000000   NA   NA   NA
##  [2,]  1.666667   NA   NA   NA
##  [3,]  3.333333   NA   NA   NA
##  [4,]  5.000000   NA   NA   NA
##  [5,]  6.666667   NA   NA   NA
##  [6,]  8.333333   NA   NA   NA
##  [7,] 10.000000   NA   NA   NA
##  [8,] 11.666667   NA   NA   NA
##  [9,] 13.333333   NA   NA   NA
## [10,] 15.000000   NA   NA   NA
  1. Create an integer vector called vec_int of numbers 7 through 16. Then assign vec_int to the second column of my_matrix.
##            [,1] [,2] [,3] [,4]
##  [1,]  0.000000    7   NA   NA
##  [2,]  1.666667    8   NA   NA
##  [3,]  3.333333    9   NA   NA
##  [4,]  5.000000   10   NA   NA
##  [5,]  6.666667   11   NA   NA
##  [6,]  8.333333   12   NA   NA
##  [7,] 10.000000   13   NA   NA
##  [8,] 11.666667   14   NA   NA
##  [9,] 13.333333   15   NA   NA
## [10,] 15.000000   16   NA   NA
  1. Use letters, LETTERS, and [ ] to get the first 10 letters to columns 3 and 4 of my_matrix.
##       [,1]               [,2] [,3] [,4]
##  [1,] "0"                "7"  "a"  "A" 
##  [2,] "1.66666666666667" "8"  "b"  "B" 
##  [3,] "3.33333333333333" "9"  "c"  "C" 
##  [4,] "5"                "10" "d"  "D" 
##  [5,] "6.66666666666667" "11" "e"  "E" 
##  [6,] "8.33333333333333" "12" "f"  "F" 
##  [7,] "10"               "13" "g"  "G" 
##  [8,] "11.6666666666667" "14" "h"  "H" 
##  [9,] "13.3333333333333" "15" "i"  "I" 
## [10,] "15"               "16" "j"  "J"
  1. Select the fourth row from my_matrix and assign it to the object row_4 as a vector.
## [1] "5"  "10" "d"  "D"
  1. Assign the element in the 6th row and 2nd column of my_matrix to val_6_2 as a numeric value.
## [1] 12
  1. Use cbind() to combine vec_num, vec_int, and the first 10 elements of letters and LETTERS into a matrix called my_matrix2.
##       vec_num            vec_int        
##  [1,] "0"                "7"     "a" "A"
##  [2,] "1.66666666666667" "8"     "b" "B"
##  [3,] "3.33333333333333" "9"     "c" "C"
##  [4,] "5"                "10"    "d" "D"
##  [5,] "6.66666666666667" "11"    "e" "E"
##  [6,] "8.33333333333333" "12"    "f" "F"
##  [7,] "10"               "13"    "g" "G"
##  [8,] "11.6666666666667" "14"    "h" "H"
##  [9,] "13.3333333333333" "15"    "i" "I"
## [10,] "15"               "16"    "j" "J"
  1. Next, first transpose my_matrix2, then select only the first four columns and assign to my_matrix2_t.
##         [,1] [,2]               [,3]               [,4]
## vec_num "0"  "1.66666666666667" "3.33333333333333" "5" 
## vec_int "7"  "8"                "9"                "10"
##         "a"  "b"                "c"                "d" 
##         "A"  "B"                "C"                "D"
  1. Use rbind() to add the rows from my_matrix to my_matrix2_t and assign this combination to big_matrix.
##         [,1]               [,2]               [,3]               [,4]
## vec_num "0"                "1.66666666666667" "3.33333333333333" "5" 
## vec_int "7"                "8"                "9"                "10"
##         "a"                "b"                "c"                "d" 
##         "A"                "B"                "C"                "D" 
##         "0"                "7"                "a"                "A" 
##         "1.66666666666667" "8"                "b"                "B" 
##         "3.33333333333333" "9"                "c"                "C" 
##         "5"                "10"               "d"                "D" 
##         "6.66666666666667" "11"               "e"                "E" 
##         "8.33333333333333" "12"               "f"                "F" 
##         "10"               "13"               "g"                "G" 
##         "11.6666666666667" "14"               "h"                "H" 
##         "13.3333333333333" "15"               "i"                "I" 
##         "15"               "16"               "j"                "J"
  1. Use cov() to get the variance-covariance matrix of the mtcars dataset (all variables are already numeric) and same this to a variable called mtcars_varcov. Then save the covariances of each variable of mtcars (i.e., all elements on the diagonal of mtcars_varcov) to a vector called mtcars_cov.

Coding with Lists

  1. Use list() to create a list that contains vec_num and row_4, and assign the names vec_num and row_4 to these two elements of list_1.
## $vec_num
##  [1]  0.000000  1.666667  3.333333  5.000000  6.666667  8.333333 10.000000
##  [8] 11.666667 13.333333 15.000000
## 
## $row_4
## [1] "5"  "10" "d"  "D"
  1. Using $, extract row4 from list_1 and assign it to the object row_4_2.
## [1] "5"  "10" "d"  "D"
  1. Create another list that contains val_6_2 and big_matrix called list_2.
## [[1]]
## [1] 12
## 
## [[2]]
##         [,1]               [,2]               [,3]               [,4]
## vec_num "0"                "1.66666666666667" "3.33333333333333" "5" 
## vec_int "7"                "8"                "9"                "10"
##         "a"                "b"                "c"                "d" 
##         "A"                "B"                "C"                "D" 
##         "0"                "7"                "a"                "A" 
##         "1.66666666666667" "8"                "b"                "B" 
##         "3.33333333333333" "9"                "c"                "C" 
##         "5"                "10"               "d"                "D" 
##         "6.66666666666667" "11"               "e"                "E" 
##         "8.33333333333333" "12"               "f"                "F" 
##         "10"               "13"               "g"                "G" 
##         "11.6666666666667" "14"               "h"                "H" 
##         "13.3333333333333" "15"               "i"                "I" 
##         "15"               "16"               "j"                "J"
  1. Combine list_1 and list_2 together using c() and assign them to list_3.
## $vec_num
##  [1]  0.000000  1.666667  3.333333  5.000000  6.666667  8.333333 10.000000
##  [8] 11.666667 13.333333 15.000000
## 
## $row_4
## [1] "5"  "10" "d"  "D" 
## 
## [[3]]
## [1] 12
## 
## [[4]]
##         [,1]               [,2]               [,3]               [,4]
## vec_num "0"                "1.66666666666667" "3.33333333333333" "5" 
## vec_int "7"                "8"                "9"                "10"
##         "a"                "b"                "c"                "d" 
##         "A"                "B"                "C"                "D" 
##         "0"                "7"                "a"                "A" 
##         "1.66666666666667" "8"                "b"                "B" 
##         "3.33333333333333" "9"                "c"                "C" 
##         "5"                "10"               "d"                "D" 
##         "6.66666666666667" "11"               "e"                "E" 
##         "8.33333333333333" "12"               "f"                "F" 
##         "10"               "13"               "g"                "G" 
##         "11.6666666666667" "14"               "h"                "H" 
##         "13.3333333333333" "15"               "i"                "I" 
##         "15"               "16"               "j"                "J"
  1. Use unlist() to turn list_3 into a vector and assign it to vector_3.
##           vec_num1           vec_num2           vec_num3           vec_num4 
##                "0" "1.66666666666667" "3.33333333333333"                "5" 
##           vec_num5           vec_num6           vec_num7           vec_num8 
## "6.66666666666667" "8.33333333333333"               "10" "11.6666666666667" 
##           vec_num9          vec_num10             row_41             row_42 
## "13.3333333333333"               "15"                "5"               "10" 
##             row_43             row_44                                       
##                "d"                "D"               "12"                "0" 
##                                                                             
##                "7"                "a"                "A"                "0" 
##                                                                             
## "1.66666666666667" "3.33333333333333"                "5" "6.66666666666667" 
##                                                                             
## "8.33333333333333"               "10" "11.6666666666667" "13.3333333333333" 
##                                                                             
##               "15" "1.66666666666667"                "8"                "b" 
##                                                                             
##                "B"                "7"                "8"                "9" 
##                                                                             
##               "10"               "11"               "12"               "13" 
##                                                                             
##               "14"               "15"               "16" "3.33333333333333" 
##                                                                             
##                "9"                "c"                "C"                "a" 
##                                                                             
##                "b"                "c"                "d"                "e" 
##                                                                             
##                "f"                "g"                "h"                "i" 
##                                                                             
##                "j"                "5"               "10"                "d" 
##                                                                             
##                "D"                "A"                "B"                "C" 
##                                                                             
##                "D"                "E"                "F"                "G" 
##                                                          
##                "H"                "I"                "J"
  1. Use as.list() to convert vector_3 into a list and assign it to list_big.
## $vec_num1
## [1] "0"
## 
## $vec_num2
## [1] "1.66666666666667"
## 
## $vec_num3
## [1] "3.33333333333333"
## 
## $vec_num4
## [1] "5"
## 
## $vec_num5
## [1] "6.66666666666667"
## 
## $vec_num6
## [1] "8.33333333333333"
## 
## $vec_num7
## [1] "10"
## 
## $vec_num8
## [1] "11.6666666666667"
## 
## $vec_num9
## [1] "13.3333333333333"
## 
## $vec_num10
## [1] "15"
## 
## $row_41
## [1] "5"
## 
## $row_42
## [1] "10"
## 
## $row_43
## [1] "d"
## 
## $row_44
## [1] "D"
## 
## [[15]]
## [1] "12"
## 
## [[16]]
## [1] "0"
## 
## [[17]]
## [1] "7"
## 
## [[18]]
## [1] "a"
## 
## [[19]]
## [1] "A"
## 
## [[20]]
## [1] "0"
## 
## [[21]]
## [1] "1.66666666666667"
## 
## [[22]]
## [1] "3.33333333333333"
## 
## [[23]]
## [1] "5"
## 
## [[24]]
## [1] "6.66666666666667"
## 
## [[25]]
## [1] "8.33333333333333"
## 
## [[26]]
## [1] "10"
## 
## [[27]]
## [1] "11.6666666666667"
## 
## [[28]]
## [1] "13.3333333333333"
## 
## [[29]]
## [1] "15"
## 
## [[30]]
## [1] "1.66666666666667"
## 
## [[31]]
## [1] "8"
## 
## [[32]]
## [1] "b"
## 
## [[33]]
## [1] "B"
## 
## [[34]]
## [1] "7"
## 
## [[35]]
## [1] "8"
## 
## [[36]]
## [1] "9"
## 
## [[37]]
## [1] "10"
## 
## [[38]]
## [1] "11"
## 
## [[39]]
## [1] "12"
## 
## [[40]]
## [1] "13"
## 
## [[41]]
## [1] "14"
## 
## [[42]]
## [1] "15"
## 
## [[43]]
## [1] "16"
## 
## [[44]]
## [1] "3.33333333333333"
## 
## [[45]]
## [1] "9"
## 
## [[46]]
## [1] "c"
## 
## [[47]]
## [1] "C"
## 
## [[48]]
## [1] "a"
## 
## [[49]]
## [1] "b"
## 
## [[50]]
## [1] "c"
## 
## [[51]]
## [1] "d"
## 
## [[52]]
## [1] "e"
## 
## [[53]]
## [1] "f"
## 
## [[54]]
## [1] "g"
## 
## [[55]]
## [1] "h"
## 
## [[56]]
## [1] "i"
## 
## [[57]]
## [1] "j"
## 
## [[58]]
## [1] "5"
## 
## [[59]]
## [1] "10"
## 
## [[60]]
## [1] "d"
## 
## [[61]]
## [1] "D"
## 
## [[62]]
## [1] "A"
## 
## [[63]]
## [1] "B"
## 
## [[64]]
## [1] "C"
## 
## [[65]]
## [1] "D"
## 
## [[66]]
## [1] "E"
## 
## [[67]]
## [1] "F"
## 
## [[68]]
## [1] "G"
## 
## [[69]]
## [1] "H"
## 
## [[70]]
## [1] "I"
## 
## [[71]]
## [1] "J"
  1. Now copy list_3 as list_4 and use [[ ]] to assign list_3 as the last (fifth) element of list_4. This is, you should end up with a list with five elements named list_4 that contains the same four elements as list_3 plus a fifth element that is itself a list, as one object.
## $vec_num
##  [1]  0.000000  1.666667  3.333333  5.000000  6.666667  8.333333 10.000000
##  [8] 11.666667 13.333333 15.000000
## 
## $row_4
## [1] "5"  "10" "d"  "D" 
## 
## [[3]]
## [1] 12
## 
## [[4]]
##         [,1]               [,2]               [,3]               [,4]
## vec_num "0"                "1.66666666666667" "3.33333333333333" "5" 
## vec_int "7"                "8"                "9"                "10"
##         "a"                "b"                "c"                "d" 
##         "A"                "B"                "C"                "D" 
##         "0"                "7"                "a"                "A" 
##         "1.66666666666667" "8"                "b"                "B" 
##         "3.33333333333333" "9"                "c"                "C" 
##         "5"                "10"               "d"                "D" 
##         "6.66666666666667" "11"               "e"                "E" 
##         "8.33333333333333" "12"               "f"                "F" 
##         "10"               "13"               "g"                "G" 
##         "11.6666666666667" "14"               "h"                "H" 
##         "13.3333333333333" "15"               "i"                "I" 
##         "15"               "16"               "j"                "J" 
## 
## [[5]]
## [[5]]$vec_num
##  [1]  0.000000  1.666667  3.333333  5.000000  6.666667  8.333333 10.000000
##  [8] 11.666667 13.333333 15.000000
## 
## [[5]]$row_4
## [1] "5"  "10" "d"  "D" 
## 
## [[5]][[3]]
## [1] 12
## 
## [[5]][[4]]
##         [,1]               [,2]               [,3]               [,4]
## vec_num "0"                "1.66666666666667" "3.33333333333333" "5" 
## vec_int "7"                "8"                "9"                "10"
##         "a"                "b"                "c"                "d" 
##         "A"                "B"                "C"                "D" 
##         "0"                "7"                "a"                "A" 
##         "1.66666666666667" "8"                "b"                "B" 
##         "3.33333333333333" "9"                "c"                "C" 
##         "5"                "10"               "d"                "D" 
##         "6.66666666666667" "11"               "e"                "E" 
##         "8.33333333333333" "12"               "f"                "F" 
##         "10"               "13"               "g"                "G" 
##         "11.6666666666667" "14"               "h"                "H" 
##         "13.3333333333333" "15"               "i"                "I" 
##         "15"               "16"               "j"                "J"
  1. Select the third element (that is, the sub-element) of the the fifth element of list_4 and assign it to an object called element_5_3 using [[ ]].

  2. Lastly, repeat the previous assignment of the third element of the fifth element, but extract the element as a list rather than scalar using [ ] and assign it to list_5_3.

  3. Let’s run a linear regression predicting miles per gallon (mpg) with number of cylinders (cyl), displacement (disp), and weight (wt), saving the result in an object called fit. Using either $ or [[ ]], extract the coefficients and the residuals. (Hint: to see the names of fit, you can types fit$ in RStudio and it will give you a dropdown menu with all the names. Or you can type names(fit) into your console).

fit <- lm(mpg ~ cyl + disp + wt,
          data = mtcars)
##  (Intercept)          cyl         disp           wt 
## 41.107677641 -1.784943519  0.007472925 -3.635677016
##           Mazda RX4       Mazda RX4 Wag          Datsun 710      Hornet 4 Drive 
##         -1.06821074         -0.14111310         -3.54020879          0.76267044 
##   Hornet Sportabout             Valiant          Duster 360           Merc 240D 
##          1.68834645         -1.39998217         -2.23901553          0.93362802 
##            Merc 230            Merc 280           Merc 280C          Merc 450SE 
##         -0.76770880          0.05625018         -1.34374982          2.30804326 
##          Merc 450SL         Merc 450SLC  Cadillac Fleetwood Lincoln Continental 
##          1.97191307          0.05369692         -0.86804574         -0.14576284 
##   Chrysler Imperial            Fiat 128         Honda Civic      Toyota Corolla 
##          4.01647717          5.84246667          1.73801440          6.07223879 
##       Toyota Corona    Dodge Challenger         AMC Javelin          Camaro Z28 
##         -4.40345801         -0.90693654         -1.41134813         -2.18265349 
##    Pontiac Firebird           Fiat X1-9       Porsche 914-2        Lotus Europa 
##          3.36187865         -0.22322961         -1.08654763          1.22220059 
##      Ford Pantera L        Ferrari Dino       Maserati Bora          Volvo 142E 
##         -2.12603002         -1.71076531         -1.09811296         -3.36494538

Coding with data.frames

  1. Use data.frame() to combine vec_num (first column) and vec_int (second column) into df1.
##      vec_num vec_int
## 1   0.000000       7
## 2   1.666667       8
## 3   3.333333       9
## 4   5.000000      10
## 5   6.666667      11
## 6   8.333333      12
## 7  10.000000      13
## 8  11.666667      14
## 9  13.333333      15
## 10 15.000000      16
  1. Use $ to extract vec_num from df1, reverse it with rev(), and assign it as the vector vec_num2.
##  [1] 15.000000 13.333333 11.666667 10.000000  8.333333  6.666667  5.000000
##  [8]  3.333333  1.666667  0.000000
  1. Use $ to add vec_num2 to df1 as a new column with the name number_vector.
##      vec_num vec_int number_vector
## 1   0.000000       7     15.000000
## 2   1.666667       8     13.333333
## 3   3.333333       9     11.666667
## 4   5.000000      10     10.000000
## 5   6.666667      11      8.333333
## 6   8.333333      12      6.666667
## 7  10.000000      13      5.000000
## 8  11.666667      14      3.333333
## 9  13.333333      15      1.666667
## 10 15.000000      16      0.000000
  1. Combine df1 with itself using rbind() and make sure to save it as df1
##      vec_num vec_int number_vector
## 1   0.000000       7     15.000000
## 2   1.666667       8     13.333333
## 3   3.333333       9     11.666667
## 4   5.000000      10     10.000000
## 5   6.666667      11      8.333333
## 6   8.333333      12      6.666667
## 7  10.000000      13      5.000000
## 8  11.666667      14      3.333333
## 9  13.333333      15      1.666667
## 10 15.000000      16      0.000000
## 11  0.000000       7     15.000000
## 12  1.666667       8     13.333333
## 13  3.333333       9     11.666667
## 14  5.000000      10     10.000000
## 15  6.666667      11      8.333333
## 16  8.333333      12      6.666667
## 17 10.000000      13      5.000000
## 18 11.666667      14      3.333333
## 19 13.333333      15      1.666667
## 20 15.000000      16      0.000000
  1. Add 20 to all values in number_vector. Do this without removing it from the dataframe.
##      vec_num vec_int number_vector
## 1   0.000000       7      35.00000
## 2   1.666667       8      33.33333
## 3   3.333333       9      31.66667
## 4   5.000000      10      30.00000
## 5   6.666667      11      28.33333
## 6   8.333333      12      26.66667
## 7  10.000000      13      25.00000
## 8  11.666667      14      23.33333
## 9  13.333333      15      21.66667
## 10 15.000000      16      20.00000
## 11  0.000000       7      35.00000
## 12  1.666667       8      33.33333
## 13  3.333333       9      31.66667
## 14  5.000000      10      30.00000
## 15  6.666667      11      28.33333
## 16  8.333333      12      26.66667
## 17 10.000000      13      25.00000
## 18 11.666667      14      23.33333
## 19 13.333333      15      21.66667
## 20 15.000000      16      20.00000
  1. Subset df1 to get only the rows where vec_num is greater than or equal to 5.
##      vec_num vec_int number_vector
## 4   5.000000      10      30.00000
## 5   6.666667      11      28.33333
## 6   8.333333      12      26.66667
## 7  10.000000      13      25.00000
## 8  11.666667      14      23.33333
## 9  13.333333      15      21.66667
## 10 15.000000      16      20.00000
## 14  5.000000      10      30.00000
## 15  6.666667      11      28.33333
## 16  8.333333      12      26.66667
## 17 10.000000      13      25.00000
## 18 11.666667      14      23.33333
## 19 13.333333      15      21.66667
## 20 15.000000      16      20.00000
  1. Subset df1 to get only the vec_int and number_vector columns and only the rows where vec_num is not 0 or 10.
##    vec_int number_vector
## 2        8      33.33333
## 3        9      31.66667
## 4       10      30.00000
## 5       11      28.33333
## 6       12      26.66667
## 8       14      23.33333
## 9       15      21.66667
## 10      16      20.00000
## 12       8      33.33333
## 13       9      31.66667
## 14      10      30.00000
## 15      11      28.33333
## 16      12      26.66667
## 18      14      23.33333
## 19      15      21.66667
## 20      16      20.00000
  1. Subset mtcars to get only those cars with the minimum number of cylinders (cyl) and the maximum number of cylinders. Then, using rownames(), print which cars fall in this category. Bonus if you do this programmatically (i.e., do not assume you know the exact min and max values of cyl).
##  [1] "Datsun 710"          "Hornet Sportabout"   "Duster 360"         
##  [4] "Merc 240D"           "Merc 230"            "Merc 450SE"         
##  [7] "Merc 450SL"          "Merc 450SLC"         "Cadillac Fleetwood" 
## [10] "Lincoln Continental" "Chrysler Imperial"   "Fiat 128"           
## [13] "Honda Civic"         "Toyota Corolla"      "Toyota Corona"      
## [16] "Dodge Challenger"    "AMC Javelin"         "Camaro Z28"         
## [19] "Pontiac Firebird"    "Fiat X1-9"           "Porsche 914-2"      
## [22] "Lotus Europa"        "Ford Pantera L"      "Maserati Bora"      
## [25] "Volvo 142E"