我想构建一个从适合对象中获取适当子样本的循环(为什么?长解释,非常无聊)。要采用这些子样本我正在使用?subset.survey.design
但我不想手动输入,我想在一个循环中完成它(下面给出了一个不完整的版本,其中索引l固定为1用于演示目的)。我正在努力争取最后一点(如何用字符串中的命令创建我的子集)。
library(survey)
data(api)
dstrat<-svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
fit<-(svyglm(api00 ~ ell, design = dstrat))
group="sch.wide"
#######THE ABOVE IS ALL THE INFORMATION THE AUTOMATED SYNTAX BELOW WILL USE
cap<-capture.output(fit$survey.design)
cap<-paste0(cap[2:length(cap)],collapse="")
l=1
levs<-unique(dstrat$variables[group])[[1]]
ll<-as.character(levs[l])
(paste0("subset(",cap,",",group,"=='",ll,"')",collapse=""))
最后一个语句(paste0 ....)应该有我需要的所有内容但是我想创建一个实际的设计项目,例如
SubD<-eval((paste0("subset(",cap,",",group,"=='",ll,"')",collapse="")))
但遗憾的是,这并没有创建一个svydesign对象,但必须有一种方法来评估字符串,并创建SubD然后允许我运行
svyglm(api00 ~ ell, design =SubD)
有人可以帮忙吗?
谢谢