【发布时间】:2021-01-14 18:32:22
【问题描述】:
我想从调查数据(使用调查权重、psu 和分层)中获取子组均值之间的差异,但由于缺少观测值 (NA),我无法这样做。你介意帮助我吗?
我使用了“Survey”包,创建了一个调查设计,并使用 svyby 按子组(城市)对包含 NA(下例中的收入)的观察结果进行了分组。我还设置了 covmat = True 以便以后可以使用 svycontrast 来计算标准误差。但是,当我这样做时,我得到了 NA。
library(survey)
data <- data.frame(psu = 1:8, city = rep(1:2, 4), income = c(2:8, NA), weights = 1)
svy <- svydesign(id=~psu, data = data, weights =~weights)
svyby(~income,~city, svy, svymean, covmat=TRUE)
city income se
1 1 5 1.195229
2 2 NA NaN
然后我尝试添加各种 NA 删除,但它们似乎都不起作用。
> svyby(~income,~city, svy, svymean, covmat=TRUE, na.rm.by=T, na.rm.all=T)
city income se
1 1 5 1.195229
2 2 NA NaN
svyby(~income,~city, svy, svymean, covmat=TRUE, na.rm = T)
Error in inflmats[[i]][idxs[[i]], ] <- infs[[i]] :
number of items to replace is not a multiple of replacement length
欢迎任何建议。
【问题讨论】: