Logical vectors are vectors that compare values. The response R gives is either TRUE which means that the comparision statement is correct or FALSE which means the comparision statement is incorrect.
Logical vectors use various operators that indicate ‘greater than’, ‘less than’, ‘equal to’, etc. As this is an abstract concept, it is better to work through several examples to understand.
You want to know how many times James scored more than 20 points in a game. to determine this you develop a simple equation that R will answer with a logical vector
> points.of.James <- c(12, 15, 30, 25, 23, 32) > points.of.James  12 15 30 25 23 32 > points.of.James > 20  FALSE FALSE TRUE TRUE TRUE TRUE
Here is what we did
- We inputted the values for ‘points.of.James
- We then entered the equation ‘points.of.James > 20’ which means which values in the variable ‘points.of.James’ are greater than 20′.
- R replied by stating that the first to values are not greater than 20, which is why they are FALSE and that the last 4 values are greater than 20, which is why they are TRUE.
Logical vectors can also be used to compare values in different vectors. This involves the use of the function ‘which(). The function which() is used for comparing different vectors. Below is an example
You want to know which games that James scored more points than Kevin. Below is the code for doing this
> points.of.James <- c(12, 15, 30, 25, 23, 32) > points.of.Kevin <- c(20, 19, 25, 30, 31, 22) > the.best <- points.of.Kevin < points.of.James > which(the.best)  3 6
Here is what happen
- You set the values for the variables ‘points.of.James’ and ‘points.of.Kevin’
- You create a new variable called ‘the.best’. In this variable you set the equation that compares when Kevin scored less than James by comparing the values in the variable ‘points.of.Kevin’ with ‘points.of.James
- You then used the ‘which()’ function for it to tell which times that Kevin scored less than James.
- R responds by telling you that Kevin scored less than James the 3rd time and 6th time
You can also find not each time that Kevin scored less than James but instead find out how many times Kevin scored less than James by using the ‘sum()’ function instead of the ‘which()’ function.
> points.of.James <- c(12, 15, 30, 25, 23, 32) > points.of.Kevin <- c(20, 19, 25, 30, 31, 22) > the.best <- points.of.Kevin < points.of.James > sum(the.best)  2
R explains that Kevin scored less than James two times.
Naturally, there is much more that can be done with vectors than what was covered here. This is just a glimpse at what is possible.