【发布时间】:2017-03-21 00:52:41
【问题描述】:
我一直在用这个公式:
varlist <- c("A", "B")
for(i in c(1:2)) {
print(varlist[i])
print(summary(svyglm(as.formula(paste0(varlist[i], "~YEAR + REGION")),
design = subset(FEI.w, varlist[i] != "U"),
family = quasibinomial)))
}
我有比 A 和 B 更多的变量,但我想在调查包中使用 A 和 B 作为我的因变量进行 glm。
我遇到的问题是,当我对数据进行子集化以排除 A 和 B 中的未知值时,R 不会这样做,而是包含整个数据框。
非常感谢任何关于为什么会发生这种情况以及如何解决这个问题的指针!
【问题讨论】:
-
不鼓励在函数和循环中使用
subset(参考:adv-r.had.co.nz/Subsetting.html)。改用dplyr的filter或类似的东西。 -
使用
glm的子集参数。下面会给出答案 -
@discipulus
dplyr不容易与library(survey)一起使用 -
@RichScriven 我认为语法不适用于
FEI.w?该对象的类是某种调查设计 -
@AnthonyDamico 是对的。我尝试了 Rich Scriven 建议的合成器,但没有奏效。另外,我认为 dplyr 不起作用,因为 FEI.w 不完全是数据框,而是调查包创建的调查对象。它的非传统数据框是我一直难以找到简单数据操作命令的简单解决方案的部分原因。