R 没有 Stata 那样的“标签”,也没有区分 for 循环的类型(如 Stata 的 forvalues 和 foreach)。您可以使用因子变量,它们有点类似于带标签的数值(并且在其建模命令中的行为类似于 Stata 的 i. 前缀符号)。您可以使用与您的 Stata 代码非常相似的方式从现有数据中创建因子变量。
我将假设您有一个名为 dat 的数据框,其中包含名为 a、c、z、t、s 的变量以及可能的其他变量变量。如果是这样,那么您想遍历变量的名称:
for (i in c("a", "c", "z", "t", "s")) {
dat[[i]] <- factor(dat[[i]], levels = 1:2, labels = c("Yes", "No"))
}
如果这些名称在数据框中是唯一的(它们可能是唯一的),您也可以循环遍历数据框中变量的位置:
pos <- match(c("a", "c", "z", "t", "s"), names(dat))
for (i in pos) {
dat[[i]] <- factor(dat[[i]], levels = 1:2, labels = c("Yes", "No"))
}
如果您的数据集中只有这些变量,您可以使用 lapply 和一些作弊符号:
dat[] <- lapply(dat, factor, levels = 1:2, labels = c("Yes", "No"))
有两个附加包提供更多类似 Stata 的标签功能:labelled 和 Hmisc,可能值得探索。但是,在大多数情况下,因素可能会给你你想要的。