This exercise will help you get familiar with performing some basic (but useful) operations with R in RStudio. You’ll first practice using some of R’s inbuilt mathematical operators and then move on to creating vectors using a variety of R functions. You’ll also practice summarising and manipulating vectors (including vectorisation) and finally we’ll take a look at how to deal with missing values in R. To help you through this exercise please read Chapter 2 of the Introduction to R book.
#at the beginning of the line.
area_circle. Google is your friend if you can’t remember the formula! Also, remember that R already knows about
c()to create a vector called
weightcontaining the weight (in kg) of 10 children:
69, 62, 57, 59, 59, 64, 56, 66, 67, 66(Section 2.3 shows you how to do this).
weightvector. Get R to calculate the mean, variance, standard deviation, range of weights and the number of children of your
weightsvector (Section 2.3). Next, extract the weights for the first five children and store these weights in a new variable called
first_five. Remember, you will need to use the square brackets
[ ]to extract (aka indexing, subsetting) elements from a variable. Section 2.4.1 introduces using the
c()function again to create a vector called
heightcontaining the height (in cm) of the same 10 children:
112, 102, 83, 84, 99, 90, 77, 112, 133, 112. Use the
summary()function to summarise these data. Extract the height of the 2nd, 3rd, 9th and 10th child and assign these heights to a variable called
some_child. Also extract all the heights of children less than or equal to 99 cm and assign to a variable called
heightvariables to calculate the body mass index (BMI) for each child. The BMI is calculated as weight (in kg) divided by the square of the height (in meters). Store the results of this calculation in a variable called
bmi. Note: you don’t need to do this calculation for each child individually, you can use both vectors in the BMI equation – this is called vectorisation (see Section 2.4.4 of the Introduction to R book).
seq()function to create a sequence of numbers ranging from 0 to 1 in steps of 0.1 (this is also a vector by the way) and assign this sequence to a variable called
seq1. If you’re unsure how to do this then see Section 2.3 of the book for more information.
seq2(Hint: you may find it easier to include the
rev()function in your code).
Let’s go seqeunce crazy! Generate the following sequences. You will need to experiment with the arguments to the
rep() function to generate these sequences (see Section 2.3 for some clues):
heightyou created in Q7. Sort the values of
heightinto ascending order (shortest to tallest) and assign the sorted vector to a new variable called
height_sorted. See Section 2.4.3 for an introduction to sorting and ordering vectors. Now sort all heights into descending order and assign the new vector a name of your choice.
child_nameswith the following names of the 10 children:
"Alfred", "Barbara", "James", "Jane", "John", "Judy", "Louise", "Mary", "Ronald", "William".
order()function in combination with the square bracket notation
[ ](see Section 2.4.3 of the book for more details). Create a new variable called
names_sortto store the names of the children sorted by child height (from shortest to tallest). Who is the shortest? who is the tallest child? If you’re not sure how to do this, please ask one of the instructors.
weight_rev. Who is the heaviest? Who is the lightest?
NA. Missing data can be tricky to deal with in R (and in statistics more generally) and cause some surprising behaviour when using some functions (see Section 2.4.5 of the Introduction to R book). To explore this a little further let’s create a vector called
mydatawith the values
2, 4, 1, 6, 8, 5, NA, 4, 7. Notice the value of the 7th element of
mydatais missing and represented with an
NA. Now use the
mean()function to calculate the mean of the values in
mydata. What does R return? Confused? Next, take a look at the help page for the function
mean(). Can you figure out how to alter your use of the
mean()function to calculate the mean without this missing value?
seq1from the workspace using the
End of Exercise 2