Sometimes, when you explore a new dataset, variable names don’t make much sense. In SPSS you would just look at the labels, in R it’s not that straightforward: checking codebooks all the time is tedious, reading a questionnaire and trying to guess which variable corresponds to each question is even less reliable. If your data has labels as attributes, or you have read .sav datafile into R with haven
or foreign
package, it would be handy to have a searchable table of all the variable and value labels in the dataset. I looked it up and didn’t find such a function, so I have written a little simple function myself.
UPD. Now this function is a part of my R package LittleHelpers.
The function gets the attributes of variables and value labels and put them in a nicely formatted table.
Use:
label_book(df, max.val=25, vars="all", view=TRUE)
There are three arguments:
df
– data.frame, result of reading spss file by packages ‘haven’ or ‘foreign’max.vals
– integer, how many value labels per each variable shoud be listed in the table, default is 25vars
– can be integer, character, or range of integers or characters. Variables indexes or names for getting subsets of label book.view
– logical, whether the result should be shown in the RStudio viewer pane. Defualt is TRUE. If FALSE, html file named ‘label_book_output.html’ is saved in your working directory.
The only extra package required is knitr
.
Example
# Read the data
ess8<- haven::read_sav("ESS8e01.sav")
# Download the function
eval(parse(text=getURL("https://raw.githubusercontent.com/MaksimRudnev/LittleHelpers/master/label_book/label_book.R")))
# Use the function
label_book(ess8, max.vals=11, vars=45:50)
Result
Label Book for “ess8”
Variables | Variable labels | Values | Value labels |
---|---|---|---|
contplt | Contacted politician or government official last 12 months | 1 | Yes |
2 | No | ||
7 | Refusal | ||
8 | Don’t know | ||
9 | No answer | ||
wrkprty | Worked in political party or action group last 12 months | 1 | Yes |
2 | No | ||
7 | Refusal | ||
8 | Don’t know | ||
9 | No answer | ||
wrkorg | Worked in another organisation or association last 12 months | 1 | Yes |
2 | No | ||
7 | Refusal | ||
8 | Don’t know | ||
9 | No answer | ||
badge | Worn or displayed campaign badge/sticker last 12 months | 1 | Yes |
2 | No | ||
7 | Refusal | ||
8 | Don’t know | ||
9 | No answer | ||
sgnptit | Signed petition last 12 months | 1 | Yes |
2 | No | ||
7 | Refusal | ||
8 | Don’t know | ||
9 | No answer | ||
pbldmn | Taken part in lawful public demonstration last 12 months | 1 | Yes |
2 | No | ||
7 | Refusal | ||
8 | Don’t know | ||
9 | No answer |