在Stata中,foreach x的R等价函数是什么?[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Stata中,foreach x的R等价函数是什么?[关闭]相关的知识,希望对你有一定的参考价值。

在Stata中,如果我想循环遍历几个变量并标记所有变量,我会执行以下操作

foreach x in a c z t s {
cap label drop `x'
label define `x' 1 "Yes" 2 "No"
label values `x' `x'
}

请有人告诉我如何在R中执行此操作?

答案

R在Stata的意义上没有“标签”,也没有区分for循环的类型(如Stata的forvaluesforeach)。您可以使用因子变量,它们与标记的数值有些相似(并且在其建模命令中另外表现得像Stata的i.前缀表示法)。您可以以与Stata代码非常相似的方式从现有数据中创建因子变量。

我将假设您有一个名为dat的数据框,其中包含名为aczts以及可能的其他变量的变量。如果是这样,那么你想循环遍历变量的名称:

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的标签功能:labelledHmisc,这可能值得探索。但是,在大多数情况下,因素可能会给你你想要的东西。

以上是关于在Stata中,foreach x的R等价函数是什么?[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

简写函数字面量(function literal)

R语言之merge举例

写为Stata文件时,R中应用的标签不保存

是否有用于为生存分析准备数据集的 R 函数,如 Stata 中的 stset?

PHP中foreach函数用法?

stata如何调用R软件有没有办法用stata调