|
Size: 2116
Comment:
|
← Revision 16 as of 2025-10-24 15:58:53 ⇥
Size: 942
Comment: Rewrite
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 3: | Line 3: |
| Stata offers human-readable variable names, variable labels, variable printing formats, and value labels. Stata stores variable labels and value labels in a separate database. Many built-in commands seamlessly pull in metadata from that database, but there are notable exceptions. |
Stata exposes a rich API for querying internal '''metadata'''. |
| Line 13: | Line 11: |
| == Variable Names == | == Labels == |
| Line 15: | Line 13: |
| Variables are (re)named using the '''`rename`''' command. Since Stata 12, it offers some advanced features: | Variable and value labels are primarily manipulated by the [[Stata/Label|`-label-`]] command. |
| Line 18: | Line 16: |
| // rename all variables with a leading 'v' such that the 'v' is replaced with a 'V' rename v* V* |
. label variable foo "yes or no?" |
| Line 21: | Line 18: |
| // rename all variables with a leading 'new_' such that the prefix is stripped rename new_* * |
. label define yesno 1 "Yes" 0 "No" |
| Line 24: | Line 20: |
| // rename all variables to a lowercase name rename *, lower |
. label values foo yesno . label list yesno yesno: 0 No 1 Yes |
| Line 28: | Line 28: |
| For older versions of Stata, try these: | Numeric values can be quickly prepended to value labels using the '''`-numlabel-`''' command. |
| Line 31: | Line 31: |
| renpfix v V renpfix new_ // TODO: how did older versions rename variable to lowercase? |
numlabel foo, add mask("#. ") }}} To access or store the text of a variable label, try: {{{ local varlab_foo: variable label foo }}} To manipulate value labels, try: {{{ local vallab_foo: value label foo local vallab_foo_1: label `vallab_foo' 1, strict |
| Line 40: | Line 51: |
| == Labels == === Variable Labels === Variable labels are defined using the '''`label`''' command. |
== Descriptives == |
| Line 47: | Line 54: |
| label variable foo "bar" }}} Variable metadata including labels can be inspected and exported using the '''`describe`''' command. {{{ preserve describe, replace assert varlab=="bar" if name=="foo" restore }}} === Value Labels === Variable labels are defined using the '''`label`''' command. However, they must first be defined as a label and then linked to one or more variables. {{{ label define baz 0 "No" 1 "Yes" label define baz 99 "Missing", modify label values foo baz }}} By default, labels cannot be overwritten. The '''`add`''' option allows new values to be inserted into an existing label. The '''`replace`''' option allows existing values to be overwritten in an existing label. The '''`modify`''' option combines both. Numeric values can be added to value labels using the '''`numlabel`''' command. {{{ numlabel baz, add mask("#. ") }}} ---- == Quick Tips == Stata has a number of interactive tools for examining metadata. {{{ di _N // number of cases di c(k) // number of variables |
display _N // number of cases display c(k) // number of variables |
Stata Metadata
Stata exposes a rich API for querying internal metadata.
Contents
Labels
Variable and value labels are primarily manipulated by the `-label-` command.
. label variable foo "yes or no?"
. label define yesno 1 "Yes" 0 "No"
. label values foo yesno
. label list yesno
yesno:
0 No
1 YesNumeric values can be quickly prepended to value labels using the -numlabel- command.
numlabel foo, add mask("#. ")To access or store the text of a variable label, try:
local varlab_foo: variable label foo
To manipulate value labels, try:
local vallab_foo: value label foo local vallab_foo_1: label `vallab_foo' 1, strict
Descriptives
display _N // number of cases display c(k) // number of variables
