select()
This lesson is called select(), part of the Fundamentals of R course. This lesson is called select(), part of the Fundamentals of R course.
Transcript
Click on the transcript to go to that point in the video. Please note that transcripts are auto generated and may contain minor inaccuracies.
View code shown in video
# Load Packages -----------------------------------------------------------
library(tidyverse)
# Import Data -------------------------------------------------------------
penguins <- read_csv("penguins.csv")
# select() ----------------------------------------------------------------
penguins
# With select() we can select variables from the larger data frame.
penguins |>
select(bill_length_mm)
# We can also use select() for multiple variables:
penguins |>
select(bill_length_mm, bill_depth_mm)
# select() has several helper functions for selecting variables.
# The contains() function finds any variable with certain text
# in the variable name:
penguins |>
select(contains("bill"))
# The starts_with() function allows us to select variables
# that start with certain text:
penguins |>
select(starts_with("bill"))
# The ends_with() function allows us to select variables that end with certain text:
penguins |>
select(ends_with("mm"))
# We can select a range of columns using the var1:var2 pattern
penguins |>
select(species:bill_length_mm)
# We can drop variables using the -var format:
penguins |>
select(-bill_length_mm)
# We can drop a set of variables using the -(var1:var2) format:
penguins |>
select(-(bill_length_mm:flipper_length_mm))
Your Turn
Copy the code below into your R script file and complete the exercises. Please make sure you are using the CSV file that you downloaded from https://rfor.us/penguins. If you use the penguins_data.csv
file from the Getting Started with R course or continue to use the penguins
object you created in that course, you will run into problems!
# Load Packages -----------------------------------------------------------
# Load the tidyverse package
library(tidyverse)
# Import Data -------------------------------------------------------------
# Download data from https://rfor.us/penguins
# Copy the data into the RStudio project
# Create a new R script file and add code to import your data
penguins <- read_csv("penguins.csv")
# select() ----------------------------------------------------------------
# Use select() to keep only the sex variable
# YOUR CODE HERE
# Use select() to keep the island and sex variables
# YOUR CODE HERE
# Use one of the select() helper functions to keep all variables that have the letter s in their names
# YOUR CODE HERE
# Use one of the select() helper functions to keep all variables that start with the letter b
# YOUR CODE HERE
# Use select() to keep the variables from island to the end
# YOUR CODE HERE
# Use the dropping syntax with - to keep the same variables as above (island to the end)
# YOUR CODE HERE
# Drop all variables from bill_length_mm to body_mass_g
# YOUR CODE HERE
Learn More
To learn more about the select()
function, check out Chapter 3 of R for Data Science.
Have any questions? Put them below and we will help you out!
Course Content
34 Lessons
1
The Grammar of Graphics
04:39
2
Scatterplots
03:46
3
Histograms
05:47
4
Bar Charts
06:37
5
Setting color and fill Aesthetic Properties
02:39
6
Setting color and fill Scales
05:40
7
Setting x and y Scales
03:09
8
Adding Text to Plots
07:32
9
Plot Labels
03:57
10
Themes
02:19
11
Facets
03:12
12
Save Plots
02:57
13
Bring it All Together (Data Visualization)
06:42
You need to be signed-in to comment on this post. Login.
Olivia Noel • September 20, 2023
This may be covered in a future lesson, but I'm wondering about toggling variables on/off in the data view instead of using the select() function. I understand that the select() function will allow me to view the data for selected variables in the console, though I don't find this very useful (or maybe am just not used to it?), as it's providing such a small snippet of the data (i.e. only the first 10 rows, also not sure how this would look if I were asking to a dataset that is 40 vars wide). Currently, when I'm reviewing my data in Stata, I open up the data viewer, which looks similar to the data tab in R Studio. I can then select any variables to show/hide directly in this panel, and then may highlight a particular observation of interest and toggle additional variables on or off. I'm not sure that the select() function in R Studio would allow me to explore my data as seamlessly -- but, like I said, maybe this will come in a future lesson, or I will get used to viewing my data in the console :P
Olivia Noel • September 20, 2023
As a response to my own question, I saw on the filter() lesson that I can use view() to open up the selected variables in a new data pane! I imagine this being less "click-and-pointy" than my current workflow in Stata, as I imagine I would need to return to my R script/console many times to be toggling variables on and off as I explore my data -- but this already gets me much closer to what I'm trying to do!
Gracielle Higino Coach • September 20, 2023
Hi Olivia! That's a great question, I also sometimes wish RStudio/posit had a more intuitive and exploratory view function, but you totally get used to doing everything on the command line! I think this solution using
view()
is the most straightforward. You can use the following code to check only the first three columns, for example:Lorenzo Dragani • March 15, 2024
I think there is a mistake in the solution provided to one of the exercises, namely the one that asks to use select() to keep the variables from island to the end. The solution provided says that the command is: penguins |> select(island:sex) but it seems that the last column of the penguins dataset is year so the answer should be either: penguins |> select(island:year) or equivalently: penguins |> select(island:last_col()) . Is this correct or am I mistaken? Thanks.
David Keyes Founder • March 15, 2024
Oh, you're totally right. Fixed!
Gabby Bachhuber • March 19, 2024
What's the logic for the "-" (minus) in the second solution below being in its own parenthesis but it's not in the first solution? That tripped me up.
penguins |> select(-species)
penguins |> select(-(bill_length_mm:body_mass_g))
David Keyes Founder • March 19, 2024
Recorded a little video for you. Let me know if it helps!
Charles Obiorah • March 20, 2024
Hello David, I just finished this lesson, and I have the following concerns
David Keyes Founder • March 21, 2024
I'm not sure I quite follow your question. Could you please elaborate and/or post a video using this link?
You could do it with this syntax:
In this code, the 1 refers to the first column (the
select()
function can select columns by position as well as name) and thelast_col()
function selects the last column.Happy to give further guidance if there are particular things you did not understand.