变量和数值标签
先查看各命令展开的示例,再按需展开其他选项及 R 实现。改写代码前,请阅读适用条件及差异说明。
decode
encode
把文本变量转换成带标签的数值变量
Stata
encode str_x, generate(x)R 包:dplyr
mutate(data, x = factor(str_x))与 Stata 有差异 factor() 创建带 R 类别的整数水平编号;encode 创建数值编码和独立值标签定义。排序规则可能改变编号顺序。
label
给数值变量的所有取值贴上标签
Stata
label define gender 1 "male" 2 "female"R 包:dplyr
mutate(data, gender = factor(gender, levels = 1:2, labels = c("male", "female")))R 中带标签的类别变量通常用因子(factor)存储。请明确写出 levels,确保每个取值对应正确的标签。
查看取值标签
Stata
label list xR 包:base
levels(data$x)对于用 haven 读入的带标签数据,可用 haven::print_labels(data$x)。
把数值标签加到变量上
Stata
label values x yesnoR 包:haven
mutate(data, x = haven::labelled(x, yesno))先定义一次标签,例如 yesno <- c(No = 0, Yes = 1),再加到任意变量上;R 中更常用的做法是 factor()。
贴上变量标签
Stata
label variable x "Variable name"R 包:labelled
labelled::set_variable_labels(data, x = "Variable name")从 Stata 文件读入的变量标签会被保留;variables() 和 codebook() 会显示它们。