我有一个大型调查(~250个变量),并希望为所有变量生成估计值和标准误差,然后与同事共享该输出。看起来好像这应该很简单,但到目前为止,我在文档中找不到类似的问题或示例。
我的例子来自survey
包中的数据:
data(api)
## one-stage cluster sample
dclus1<-svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc)
svytotal(~api00, dclus1, deff = TRUE)
svytotal(~api99, dclus1, deff = TRUE)
我知道我可以通过上述方法为每个变量生成估计值和误差,或者产生下面的双向结果:
svytotal(~api00+api99, dclus1, deff = TRUE)
然而,我的目标是在一个步骤中为每个变量产生估计和误差,即
svytotal(~(c(pcttest:api.stu)), dclus1, deff = TRUE)
以便它返回所有变量的估计值和误差:
apiclus1[, 11:37]
是否通过调查包或srvyr
包提供解决方案?
答案 0 :(得分:0)
您目前混合使用整数和因子列。除非先将它们转换为数字,否则您将无法计算标准误差。
在一个较小的示例中,要计算多列的标准错误,您可以像这样使用apply
:
apply(apiclus1[,11:15],2,sd,na.rm=TRUE)
pcttest api00 api99 target growth
1.686912 105.748867 112.850380 5.247616 29.755257
请注意,如果您将范围更改为[,11:16]
,sch.wide
会返回NA,因为它是一个因素,而不是数字。
另请注意,计算错误svytotal(~api00, dclus1, deff = TRUE)
的公式会为898364
返回api00
的非荒谬值。