在Stata中,如果我想遍历几个变量并标记所有变量,请执行以下操作
vocab term
请有人告诉我如何在R中执行此操作?
答案 0 :(得分:3)
R在Stata的意义上没有“标签”,也没有区分for循环的类型(如Stata的forvalues
和foreach
)。您可以使用因子变量,这些因子变量与标记的数值有些相似(并且在其建模命令中的行为还类似于Stata的i.
前缀表示法)。您可以按照与Stata代码完全相似的方式,从现有数据中创建因子变量。
我要假设您有一个名为dat
的数据框,其中包含名为a
,c
,z
,{{1 }},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
有两个附加软件包,它们提供更多类似于Stata的标记功能:labelled和Hmisc,这可能值得探讨。但是,在大多数情况下,因素可能会给您您想要的东西。