Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
error = TRUE,
comment = "### >"
)
## ----setup--------------------------------------------------------------------
# install.packages("labelr") #CRAN version
# install.packages("devtools") # Step 1 to get GitHub version
# devtools::install_github("rhartmano/labelr") #Step 2 to get GitHub version
library(labelr)
## -----------------------------------------------------------------------------
set.seed(555) # for reproducibility
df <- make_demo_data(n = 1000) # you can specify the number of fictional obs.
# make a backup for later comparison
df_copy <- df
## -----------------------------------------------------------------------------
df <- add_frame_lab(df, frame.lab = "Demographic and reaction time test score
records collected by Royal Statistical Agency of
Fictionaslavica. Data fictionally collected in the year
1987. As published in A. Smithee (1988). Some Fictional Data
for Your Amusement. Mad Magazine, 10(1), 1-24.")
get_frame_lab(df)
## -----------------------------------------------------------------------------
df <- add_name_labs(df, name.labs = c(
"age" = "Age in years",
"raceth" = "Racial/ethnic identity group category",
"gender" = "Gender identity category",
"edu" = "Highest education level attained",
"x1" = "Space Invaders reaction time test scores",
"x2" = "Galaga reaction time test scores"
))
## -----------------------------------------------------------------------------
get_name_labs(df)
## -----------------------------------------------------------------------------
df <- add_val_labs(df, # data.frame with to-be-value-labeled column
vars = "raceth", # quoted variable name of to-be-labeled col
vals = c(1:7), # to-be-labeled values 1 through 7, inclusive
labs = c(
"White", "Black", "Hispanic", # ordered labels for vals 1-7
"Asian", "AIAN", "Multi", "Other"
),
max.unique.vals = 10 # max number of unique values permitted
)
## -----------------------------------------------------------------------------
df <- add_val1(
data = df,
var = gender, # contrast this var argument to the vars argument demo'd above
vals = c(0, 1, 2, 3, 4), # the values to be labeled
labs = c("M", "F", "TR", "NB", "Diff-Term"), # the labels, applied in order, to the vals
max.unique.vals = 10
)
## -----------------------------------------------------------------------------
get_val_labs(df)
## -----------------------------------------------------------------------------
df_temp <- add_quant_labs(
data = df,
vars = "x",
qtiles = 5,
partial = TRUE
)
get_val_labs(df_temp)
## -----------------------------------------------------------------------------
df_temp <- add_quant_labs(
data = df_temp,
vars = "x",
vals = c(100, 150),
partial = TRUE
)
get_val_labs(df_temp)
## -----------------------------------------------------------------------------
df <- add_quant1(df, # data.frame
x1, # variable to value-label
qtiles = 5
) # number of quintiles to use in defining numerical range labels
## -----------------------------------------------------------------------------
df <- add_m1_lab(df, "edu", vals = c(3:5), lab = "Some College+")
df <- add_m1_lab(df, "edu", vals = 1, lab = "Not HS Grad")
df <- add_m1_lab(df, "edu", vals = 2, lab = "HSG, No College")
get_val_labs(df)
## -----------------------------------------------------------------------------
head(df_copy, 3) # our pre-labeling copy of the data.frame
head(df, 3) # our latest, post-labeling version of same data.frame
## -----------------------------------------------------------------------------
head(df, 5) # Base R function utils::head()
headl(df, 5) # labelr function headl() (note the "l")
tail(df, 5) # Base R function utils::tail()
taill(df, 5) # labelr function taill() (note the extra "l")
set.seed(293)
car::some(df, 5) # car package function car::some()
set.seed(293)
somel(df, 5) # labelr function somel() (note the "l")
## -----------------------------------------------------------------------------
use_val_labs(df)[1:20, ] # headl() is just a more compact shortcut for this
## -----------------------------------------------------------------------------
# `collapse::qsu()`
# with labels "off" (i.e., using regular values of "raceth" as by var)
(by_demog_val <- collapse::qsu(df, cols = c("x2"), by = ~raceth))
# with labels "on" (i.e., using labels, thanks to `uvl()`)
(by_demog_lab <- collapse::qsu(uvl(df), cols = c("x2"), by = ~raceth))
## -----------------------------------------------------------------------------
with(df, table(gender, raceth)) # base::with()
with_val_labs(df, table(gender, raceth)) # labelr::with_val_labs()
wvl(df, table(gender, raceth)) # labelr::wvl is a more compact alias
## -----------------------------------------------------------------------------
df_labd <- use_val_labs(df)
head(df_labd) # note, this is utils::head(), not labelr::headl()
## -----------------------------------------------------------------------------
df_plus_labs <- add_lab_cols(df)
head(df_plus_labs[c("gender", "gender_lab", "raceth", "raceth_lab")])
## -----------------------------------------------------------------------------
head(df)
df1 <- flab(df, raceth == "Asian" & gender == "F")
head(df1, 5) # returned df1 is in terms of values, just like df
headl(df1, 5) # note use of labelr::headl; labels are there
## -----------------------------------------------------------------------------
df2 <- slab(df, raceth == "Black" & gender == "M", gender, raceth)
head(df2, 10)
## -----------------------------------------------------------------------------
names_labs_vec <- c(
"mpg" = "Miles/(US) gallon",
"cyl" = "Number of cylinders",
"disp" = "Displacement (cu.in.)",
"hp" = "Gross horsepower",
"drat" = "Rear axle ratio",
"wt" = "Weight (1000 lbs)",
"qsec" = "1/4 mile time",
"vs" = "Engine (0 = V-shaped, 1 = straight)",
"am" = "Transmission (0 = automatic, 1 = manual)",
"gear" = "Number of forward gears",
"carb" = "Number of carburetors"
)
## -----------------------------------------------------------------------------
mt2 <- add_name_labs(mtcars,
vars = names(names_labs_vec),
labs = names_labs_vec
)
## -----------------------------------------------------------------------------
mt2 <- add_name_labs(mtcars,
name.labs = c(
"mpg" = "Miles/(US) gallon",
"cyl" = "Number of cylinders",
"disp" = "Displacement (cu.in.)",
"hp" = "Gross horsepower",
"drat" = "Rear axle ratio",
"wt" = "Weight (1000 lbs)",
"qsec" = "1/4 mile time",
"vs" = "Engine (0 = V-shaped, 1 = straight)",
"am" = "Transmission (0 = automatic, 1 = manual)",
"gear" = "Number of forward gears",
"carb" = "Number of carburetors"
)
)
## -----------------------------------------------------------------------------
mt2 <- use_name_labs(mt2)
head(mt2[c(1, 2)])
## -----------------------------------------------------------------------------
lm(`Miles/(US) gallon` ~ `Number of cylinders`, data = mt2) # pasting in var names
lm(mpg ~ cyl, data = use_var_names(mt2)) # same result if name labels are "off"
## -----------------------------------------------------------------------------
sapply(mt2, median) # get the median for every name-labeled variable
collapse::qsu(mt2) # use an external package for more informative descriptives
## -----------------------------------------------------------------------------
# invert our prior use_name_labs() call
mt2 <- use_var_names(mt2) # revert from name labels back to original colnames
head(mt2[c(1, 2)])
## -----------------------------------------------------------------------------
# first, show that mt2 now has original column names swapped back in
head(mt2)
# verify that the name labels are still present and available in the background
get_name_labs(mt2)
## -----------------------------------------------------------------------------
# demo with_name_labs() (note that with_name_labs() will achieve same result)
with_name_labs(mt2, t.test(mpg ~ am)) # wnl() is alias for with_name_labs()
with_name_labs(mt2, lm(mpg ~ am))
wnl(mt2, summary(mt2)) # wnl() is alias for with_name_labs()
wnl(mt2, xtabs(~gear)) # wnl() is alias for with_name_labs()
with(mt2, xtabs(~gear)) # compare this base::with() call to wnl() call above
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.