【发布时间】:2016-12-21 00:50:26
【问题描述】:
我正在尝试使用调查包计算穷人的比例。 因此,我使用总人口(一)的变量创建了一个子集,并称为 n(我不确定这是否是正确的方法)。 所以,我有:
str(base2015$q)
num [1:117939] 0 0 0 0 0 0 0 0 0 0 ...
str(base2015$one)
int [1:117939] 1 1 1 1 1 1 1 1 1 1 ...
和一个分类变量区域。 (y 是我的 svydesign) 我尝试使用这样的 svyratio 函数,但他给了我所有数据集的结果,我想要按子组(区域)。事实上,我希望每个地区都有这个(见图) proportion of poor
svyratio(numerator=~q,
~one,
design = y, separate=FALSE, na.rm=TRUE,
formula, covmat=FALSE, deff=FALSE)
我也尝试使用人口创建一个子集,然后使用 svyby:
n <- subset( y , one == 1 )
View(n)
svyby( ~ q , ~ region , n , vartype=c("se","ci","cv"), svytotal )
svyby( ~ q , ~ region , n , vartype=c("se","ci","cv"), svymean )
region q se ci_l ci_u cv
1 1 NA NaN NaN NaN NaN
2 2 NA NaN NaN NaN NaN
3 3 NA NaN NaN NaN NaN
4 4 NA NaN NaN NaN NaN
5 5 NA NaN NaN NaN NaN
他给了我这个。我不知道我做错了什么。 有人可以帮我解决这个问题吗?
【问题讨论】:
-
NA/NaN值很可能是数据中缺失值的结果。要确认这一点,您可以使用nonMissDF = na.omit(DF)排除丢失的数据并再次尝试您的功能。如果确认您面临缺失数据,我建议探索调查分析中缺失数据的插补方法 -
谢谢@Osssan。新的 nonMissDF 运行良好。而且我不能对缺失数据进行插补,因为巴西地理和统计研究所 (ibge) 已经做到了。所以我想我不能。还是谢谢