4
这显然是R的survey package特有的东西。我正在尝试使用plyr package中的llply
列出svyglm
型号。这里有一个例子:在plyr调用中使用svyglm
library(survey)
library(plyr)
foo <- data.frame(y1 = rbinom(50, size = 1, prob=.25),
y2 = rbinom(50, size = 1, prob=.5),
y3 = rbinom(50, size = 1, prob=.75),
x1 = rnorm(50, 0, 2),
x2 = rnorm(50, 0, 2),
x3 = rnorm(50, 0, 2),
weights = runif(50, .5, 1.5))
我因变量一栏中的数字列表
dvnum <- 1:3
指示该样品中没有集群或地层
wd <- svydesign(ids= ~0, strata= NULL, weights= ~weights, data = foo)
单svyglm调用工作
svyglm(y1 ~ x1 + x2 + x3, design= wd)
And llply
将使基础R的列表glm
车型
llply(dvnum, function(i) glm(foo[,i] ~ x1 + x2 + x3, data = foo))
但llply
引发以下错误,当我尝试这个方法适应svyglm
llply(dvnum, function(i) svyglm(foo[,i] ~ x1 + x2 + x3, design= wd))
Error in svyglm.survey.design(foo[, i] ~ x1 + x2 + x3, design = wd) :
all variables must be in design= argument
所以我的问题是:我怎么使用llply
和svyglm
?
您可能需要运行一个循环,为每个模型创建适当的公式对象。 – 2012-03-05 21:24:24