2

使用包分析序数数据survey,我在尝试使用 raked 数据时遇到了一些问题。没有耙,svyolr()工作没有任何问题,但是当我在耙后尝试分析时,svyolr 遇到错误Error in if (any(y < 0 | y > 1)) stop("y values must be 0 <= y <= 1") : missing value where TRUE/FALSE needed

可以使用示例数据集 api 重现该问题:

library(survey)
data(api)
dclus1 <- svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc)

dclus1<-update(dclus1, mealcat=cut(meals,c(0,25,50,75,100)))

m<-svyolr(mealcat~avg.ed+mobility+stype, design=dclus1)
m #works without a problem

## population marginal totals for each stratum
pop.types <- data.frame(stype=c("E","H","M"), Freq=c(4421,755,1018))
pop.schwide <- data.frame(sch.wide=c("No","Yes"), Freq=c(1072,5122))


## Rake with the population totals
dclus1r<-rake(dclus1, list(~stype,~sch.wide), list(pop.types, pop.schwide))


m2 <-svyolr(mealcat~avg.ed+mobility+stype, design=dclus1r)
m2 # error encountered

难道我做错了什么?无法svyolr处理倾斜或后分层(相同的错误消息)数据?我在帮助文件中没有看到任何提及,甚至在survey:::svyolr.survey.design2.

是否可以使用survey或任何其他包来执行此操作R

4

1 回答 1

0

您实际上发现了一个错误 :-) 4.2 版已修复此问题..您可以使用survey软件包的开发版本,直到通过安装更新​​到 CRANinstall.packages("survey", repos="http://R-Forge.R-project.org")

于 2022-02-20T05:23:58.733 回答