R:svychisq的语法和svytable上的摘要

时间:2018-01-24 11:47:14

标签: r

我在" svydesigned"数据库并且在使用svysq时遇到问题。

这是我尝试过的工作:

AxB<-svytable(~A+B, surveydesign, Ntotal=100)
AxB
svychisq(~A+B, surveydesign)

我想做什么工作:

svychisq(AxB, surveydesign)

返回&#34; $运算符对原子向量无效&#34;

svychisq(~AxB, surveydesign)

返回&#34;公式[[2]] [[2]]中的错误:符号类型的对象不是子集表格&#34;

summary(AxB)

返回表和chisq,但是表中有整数(所以只有0和1,因为我的值是0.xx格式,因为Ntotal = 100)

让我感到不快的是,帮助表明&s 34; sumary on svytable call svychisq&#34;。我还是R语法的新手,并且无法弄清楚如何让svychisq使用表格返回结果,而不是再次输入我用于创建表格的整个公式。

我也希望能够在使用&#34;摘要&#34;时看到小数,是否有办法?我尝试使用digits = 4但没有任何改变。

感谢。

1 个答案:

答案 0 :(得分:1)

svychisq需要formulasvydesign个对象作为参数。它就是它的创建方式,你将无法为它提供svytable参数。你可以通过编写自己的函数来解决这个问题:

FOO <- function(x){
  temp <- as.character(attr(x, "call"))[2:3]
  svychisq(as.formula(temp[1]), design = eval(parse(text = temp[2])))
}

您向其提供svytable个对象,它会检索对象的调用并将其反馈给svychisq

FOO(AxB)应按预期工作。