Working with labelled data
This lesson is called Working with labelled data, part of the R in 3 Months (Spring 2026) course. This lesson is called Working with labelled data, part of the R in 3 Months (Spring 2026) 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.
Loading transcript...
View code shown in video
# Load Packages -----------------------------------------------------------
library(tidyverse)
library(zip)
library(haven)
library(labelled)
# Download Data -----------------------------------------------------------
# download.file("https://gss.norc.org/content/dam/gss/get-the-data/documents/stata/2022_stata.zip",
# destfile = "data-raw/gss-2022.zip"
# )
#
# unzip(
# zipfile = "data-raw/gss-2022.zip",
# exdir = "data-raw",
# junkpaths = TRUE
# )
# Work with Labelled Data -------------------------------------------------
gss_marital_status <-
read_dta("data-raw/GSS2022.dta") |>
select(marital)
gss_marital_status
gss_marital_status |>
count(marital) |>
ggplot(
aes(
x = n,
y = marital
)
) +
geom_col()
# Convert to Factor -------------------------------------------------------
gss_marital_status |>
generate_dictionary()
gss_marital_status |>
as_factor()
gss_marital_status_factor <-
gss_marital_status |>
as_factor()
gss_marital_status_factor |>
count(marital) |>
ggplot(
aes(
x = n,
y = marital
)
) +
geom_col()
Have any questions? Put them below and we will help you out!
Course Content
148 Lessons
1
Welcome to Fundamentals of R
01:20
2
Update Everything
02:26
3
Start a New Project
02:38
4
The Tidyverse
03:24
5
Pipes
03:52
6
select()
04:43
7
mutate()
03:22
8
filter()
10:18
9
Quiz
10
summarize()
05:38
11
Grouped Summaries
04:24
12
arrange()
02:50
13
Create a New Data Frame
03:30
14
Quiz
15
Bring it All Together (Data Wrangling)
07:09
16
Week 2 Project Assignment
13:10
17
Week 2 Coworking Session (Spring 2026)
18
Week 2 Live Session (Spring 2026)
59:16
1
The Grammar of Graphics
04:36
2
Scatterplots
03:40
3
Histograms
04:51
4
Bar Charts
04:53
5
Quiz
6
Setting color and fill Aesthetic Properties
02:43
7
Setting color and fill Scales
05:12
8
Quiz
9
Setting x and y Scales
02:58
10
Adding Text to Plots
05:50
11
Plot Labels
02:59
12
Themes
02:10
13
Facets
02:56
14
Save Plots
02:49
15
Bring it All Together (Data Visualization)
06:14
16
Week 3 Project Assignment
06:02
17
Week 3 Coworking Session (Spring 2026)
18
Week 3 Live Session (Spring 2026)
1:00:46
1
Downloading and Importing Data
08:13
2
Overview of Tidy Data
05:03
3
Tidy Data Rule #1: Every Column is a Variable
06:26
4
Tidy Data Rule #3: Every Cell is a Single Value
09:27
5
Tidy Data Rule #2: Every Row is an Observation
04:05
6
Quiz
7
Week 6 Coworking Session (Spring 2026)
8
Week 6 Live Session (Spring 2026)
59:31
1
Best Practices in Data Visualization
03:38
2
Tidy Data
02:25
3
Pipe Data in ggplot
08:18
4
Reorder Plots to Highlight Findings
03:50
5
Line Charts
04:13
6
Use Color to Highlight Findings
08:23
7
Declutter
07:53
8
Add Descriptive Labels to Your Plots
09:18
9
Use Titles to Highlight Findings
08:30
10
Use Annotations to Explain
06:35
11
Quiz
12
Week 9 Coworking Session (Spring 2026)
13
Week 9 Live Session (Spring 2026)
59:10
1
Advanced Markdown
07:10
2
Tables
15:48
3
Advanced YAML and Code Chunk Options
05:42
4
Inline R Code
03:42
5
Making Your Reports Shine: Word Edition
05:08
6
Making Your Reports Shine: PDF Edition
07:37
7
Making Your Reports Shine: HTML Edition
06:08
8
Presentations
11:12
9
Dashboards
06:20
10
Websites
08:11
11
Publishing Your Work
02:37
12
Quarto Extensions
06:38
13
Parameterized Reporting, Part 1
07:02
14
Parameterized Reporting, Part 2
04:03
15
Parameterized Reporting, Part 3
06:22
16
Quiz
17
Week 12 Coworking Session (Spring 2026)
18
Week 12 Live Session (Spring 2026)
57:26
1
Working with labelled data
05:35
2
Understanding Documentation Pages
05:20
3
Factors in R
11:18
4
Add citations to Quarto documents
10:42
5
Change titles of facet plots
08:16
6
Population pyramid plot
04:24
7
Why use Git - example case
06:13
8
How to access data not on GitHub
13:46
9
Dealing with merge conflicts in GitHub Desktop
03:22
10
Crosstabs
06:58
11
Difference between == and %in%
03:17
12
Quarto - rendering and working directories
13:05
13
Using Function Arguments
13:06
You need to be signed-in to comment on this post. Login.
Odile DOREUS • October 3, 2024
Hi David, I was trying to use the "labeled" package with a multiple-choice options survey question and encountered an issue. I realized that I needed to tidy my question first before using the function; otherwise, it would not work. Is there a difference when dealing with a single-choice question versus a multiple-choice one?
David Keyes Founder • October 3, 2024
I'm not really sure because I haven't worked with labelled data much. However, I can imagine that having multiple choice data in a single variable could make the labelled package not work right. Happy to look at an example if you have some code you can share.
Odile DOREUS • October 3, 2024
Here you go David. Thanks.
David Keyes Founder • October 3, 2024
Can you make this fully reproducible so I can run your code? I'd need to have the data importing step work so I can see what your data looks like.
Hilde Karlsen • October 10, 2024
Thank you for taking the time to create this video, David! I have been using both the labelled() and haven() packages before, basically doing that you are showing us here. However, what I would love is to do it the way you do it, not the way I have done it (earlier, using stata). Do you think you could create a similar video, where you show the process you would use, working with the same data and the same variable and then creating a meaningful plot?
David Keyes Founder • October 11, 2024
I'm happy to do this, but I'm not quite sure what you mean. Do you want me to make a different plot than the one I show in the video?
Hilde Karlsen • October 11, 2024
I am sorry for being vague. What I meant is: Can you use data in the form that you would normally use it (i.e. not labelled data from spss/stata etc), and then create a similar plot that you did in the video (i.e. the video where you used the labelled data by transforming the variable into a factor)? What I would love to do is create plots/graphs etc that have meaningful text in it, so that the plot/graph is intuitive for the reader of the report. In order to do that - don´t you often need some type of text string that explains what we are looking at? Even if we don´t call it "a variable label" and "value labels" it is often more meaningful to have variables show up with text (such as in the penguins data, where Islands and Penguins have character string names, they are not calles 1, 2, 3 (for the three different penguin types), for example. I really want to understand what is the best practice of dealing with data in R, and it seems a bit time consuming to always have to specify in a plot that what the x and y labels/values are.
Gracielle Higino Coach • October 11, 2024
If I might chime in here, I think what you'll need is a combination of a tailored function and the use of the
fct()function. You can have a vector containing your "labels" and assign them to another variable values when mutating them into a factor usingfct(). We have an extra lesson on factors, we'll put it up so you can take a look! Also, we'll discuss some of that a bit later, after we go through advanced data wrangling and data viz! =DDavid Keyes Founder • October 11, 2024
Gracielle's suggestion is probably your best bet. Since she knows your data too, maybe she can put something together for you based on your data.
Sara Parisi • October 11, 2024
Hi David,
Thanks for recording this extra lesson! Can you add a "View code shown in video" section here so we can copy and paste your code?
David Keyes Founder • October 11, 2024
Oh yes, I meant to do this! Will add it now.
Hilde Karlsen • October 11, 2024
Gracielle, what you are mentioning about using the combination of a tailored function and the use of the fct() function, so that I can have a vector containing your "labels" and assign them to another variable values when mutating them into a factor using fct() - sounds very much what I would like to do. I am really looking forward to understanding how I can do it, because I am able to to somthing similar, but I don´t really understand what is happening under the hood. If you have an extra lesson on factors, I´ll jump right into it and take a look. It will be sooooo cool to be able to do this in a more programmatic fashion, rather than labelling the data in advande (which is what I want to un-learn) :-)
Gracielle Higino Coach • October 12, 2024
Awesome! The extra lesson is already up here: https://rfortherestofus.com/courses/r-in-3-months-fall-2024/lessons/factors
I'll try a couple of things with your data and then we can book a 1:1 to go through it =D