R svyby和空单元格

R svyby和空单元格,r,survey,R,Survey,希望这是一个带有简单解决方案的简单问题。我在几个国家收集了加权调查数据。我正试图创建一个表格,显示对特定调查问题按国家的比例回答,以及相应的CI和SE。在“调查”包中使用svyby似乎对第一个问题很有效,每个国家的每个因素水平至少有一个回答 svyby(~V34c,~V4, design = data, svymean, na.rm=T,vartype=c("ci","se")) 以一般形式产生预期输出: [国家,既不同意也不反对,V34cNo数据,V34cOverall同意,…] 澳大利亚联

希望这是一个带有简单解决方案的简单问题。我在几个国家收集了加权调查数据。我正试图创建一个表格,显示对特定调查问题按国家的比例回答,以及相应的CI和SE。在“调查”包中使用svyby似乎对第一个问题很有效,每个国家的每个因素水平至少有一个回答

svyby(~V34c,~V4, design = data, svymean, na.rm=T,vartype=c("ci","se"))
以一般形式产生预期输出:

[国家,既不同意也不反对,V34cNo数据,V34cOverall同意,…]

澳大利亚联盟,0.31459269,0.042582581,0.2935771

比利时,0.31884528,0.0895231917,0.2024003

保加利亚,0.29237157,0.06499093,0.4632688。。。

然而,当在某些因子水平为空的问题上运行相同的代码时(例如,保加利亚没有“总体同意”的观察结果),我得到了令人不安的输出:

svyby(~V34c,~V4, design = data, svymean, na.rm=T,vartype=c("ci","se"))
[国家,1,2,3,…] 非澳大利亚,c(0.165198816,0.026821016,0.734128167,0.073852001,0.012071501,0.006550439,0.014495680,0.008485131,0.141539109,0.01398290,0.705717158,0.057221449,0.1888522,0.039659641,0.762539177,0.090482553),c(0.155043789,0.043788518,0.744404801,0.056762893,0.006518719,0.003685319,0.007855954,0.004167357,0.142267333,0.036565425,0.729007414,0.048595024,0.167820244,0.051011610,0.75980287,0.064930763),c(0.305804298、0.016750805、0.461542910、0.215901986、0.015591287、0.004766330、0.016740671、0.014762079、0.275245937、0.007408969、0.428731799、0.186968842、0.336362659、0.026092642、0.494354022、0.244835130)

比利时,c(0.165198816,0.026821016,0.734128167,0.073852001,0.012071501,0.006550439,0.014495680,0.008485131,0.141539109,0.01398290,0.705717158,0.057221449,0.1888522,0.039659641,0.762539177,0.090482553),c(0.155043789,0.043788518,0.744404801,0.056762893,0.006518719,0.003685319,0.007855954,0.004167357,0.142267333,0.036565425,0.729007414,0.048595024,0.167820244,0.051011610,0.75980287,0.064930763),c(0.305804298、0.016750805、0.461542910、0.215901986、0.015591287、0.004766330、0.016740671、0.014762079、0.275245937、0.007408969、0.428731799、0.186968842、0.336362659、0.026092642、0.494354022、0.244835130)

保加利亚,c(0.165198816,0.026821016,0.734128167,0.073852001,0.012071501,0.006550439,0.014495680,0.008485131,0.141539109,0.01398290,0.705717158,0.057221449,0.1888522,0.039659641,0.762539177,0.090482553),c(0.155043789,0.043788518,0.744404801,0.056762893,0.006518719,0.003685319,0.007855954,0.004167357,0.142267333,0.036565425,0.729007414,0.048595024,0.167820244,0.051011610,0.75980287,0.064930763),c(0.305804298、0.016750805、0.461542910、0.215901986、0.015591287、0.004766330、0.016740671、0.014762079、0.275245937、0.007408969、0.428731799、0.186968842、0.336362659、0.026092642、0.494354022、0.244835130)

当我从数据集中删除冒犯的国家时,代码似乎按照我预期的方式工作,但我希望有另一种解决方案


谢谢!

我认为您需要重置因子水平。
数据谢谢,这就是问题所在!@AnthonyDamico-这对我也有效,您应该将其作为答案提交