我在" 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但没有任何改变。
感谢。
答案 0 :(得分:1)
svychisq
需要formula
和svydesign
个对象作为参数。它就是它的创建方式,你将无法为它提供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)
应按预期工作。