【发布时间】:2022-06-14 21:05:43
【问题描述】:
我有一个包含一个主要分类结果变量和多个分类暴露变量的数据集。我想为每个曝光变量生成一系列带有卡方检验的单独交叉表,我想知道是否有办法使用循环来做到这一点。
这基本上是我要完成的工作的长版本:
ctable(data$x1, data$y, chisq=T, useNA='no')
ctable(data$x2, data$y, chisq=T, useNA='no')
ctable(data$x3, data$y, chisq=T, useNA='no')
这是我第一次把它变成循环:
for(i in c('x1', 'x2', 'x3')){
ctables <- ctable(data[[i]], data$y, chisq=T, useNA='no')
}
ctables
我运行它时没有收到任何错误,但它只返回最后一个变量名的 ctable(在本例中为 x3)。我错过了什么?
注意:我需要专门命名数据框(data$y 而不是只说 y),因为我正在使用包含多个数据框的大型 SQL 数据库。
【问题讨论】:
-
您在循环的每次迭代中无意中重写了
ctables,这就是为什么ctables只保留最后一个结果
标签: r loops lapply crosstab crosstable