The goal of labeller is find, fix, and double-check common issues that arise when documenting data. This package is useful wherever variable and value labels are found, but particularly useful where those labels have been generated by Survey Solutions.
Note also: while this package does not require selector, some commands in labeller do leverage the questionnaire metadata that selector adds to survey metadata.
To get a bug fix, a version not yet published on SSC, or test bleeding-edge features, you can install code from other branches of the repository. The current release is version 0.5.
To install the version in a particular branch:
* set tag to be the name of the target branch
* for example, the development branch, which contains code for the next release
local tag "dev"
* alternatively, v0.5, which contains the code for the current pre-SSC release.
* download the code from that GitHub branch
* install the package
net install labeller, ///
from("https://raw.githubusercontent.com/lsms-worldbank/labeller/`tag'/src") replace
If you need to install a previously releases version of labeller
, then you can use the following method. This can be useful, for example, during reproducibility verifications. To install the version in a particular release, set the local tag
to the target release you want to install in this code:
* set the tag to the name of the target release
* for example v1.0, say, if the current version were v2.0
local tag "v1.0"
* download the code from that GitHub release
* install the package
net install labeller, ///
from("https://raw.githubusercontent.com/lsms-worldbank/labeller/`tag'/src") replace
Find and replace text substitution markers (e.g., %rostertitle%
)
Command | Description |
---|---|
lbl_list_pipes | Lists pipes in variable labels from Survey Solutions. |
lbl_replace_pipe | Replaces pipes in variable labels with user-provided value |
lbl_assert_no_pipes | Asserts that no variable labels have any pipes |
Identify labels that might be potentially truncated.
Command | Description |
---|---|
lbl_list_long_var_lbl | List variables whose variable label is longer than the desired character length. |
lbl_assert_no_long_var_lbl | Assert that there is no variable in memory whose variable length exceeds the desired character length. |
Check for variables without variable labels
Command | Description |
---|---|
lbl_list_no_var_lbl | List variables without a variable label. |
lbl_assert_have_var_lbl | List variables without a variable label. |
Find labels with desired content; modify labels with Designer metadata
Command | Description |
---|---|
lbl_list_matching_var_lbls | Identify variables whose label matches a pattern. |
lbl_use_meta | Accesses variable metadata and, optionally, uses it to set the value of data attributes. |
Find labels with desired content; find and drop unused labels
Command | Description |
---|---|
lbl_list_matching_val_lbls | List value labels whose labels match a pattern. |
lbl_list_unused_val_lbls | List value labels not attached to any variable. |
lbl_drop_unused_val_lbls | Drop value labels not attached to any variable. |
More details on
* missing
lbl_list_no_var_lbl
* too long
lbl_list_long_var_lbl, maxlen(80)
* contains text...
* ... SuSo pipes
lbl_list_pipes
* ... some text
lbl_list_matching_var_lbls, pattern("string to find")
* unused
lbl_list_unused_val_lbls, verbose
* contains text
* for example, French characters
lbl_list_matching_val_lbls, pattern("[àâäÀÂÄéèêëÉÈÊËîïôöÔÖùûüçÇ]")
Provides functions for the full data documentation workflow:
Step 1: Take stock of the problem's scope
* list all pipes and all variables with those pipes
lbl_list_pipe
Step 2: Treat problems where they appear
* replace "%rostertitle% with "[NAME]" in all variable labels
lbl_replace_pipe, ///
pipe("%rostertitle%") ///
replacement("[NAME]")
Step 3: Confirm that all problems have been resolved
lbl_assert_no_pipes
To learn more about the package:
- Consult the reference documentation
- Read how-to articles
LSMS Team, World Bank [email protected]