我试图在数据集中找到序数变量(具有4个水平) y_4的流行率差异的调整卡方p值,作为调查设计svydes,使用三值分类变量x_3的子集从数据集ds中进行。我对具有x_3 == 1的受试者子集中不同水平的y_4流行率的p值很感兴趣。
library(survey)
y_4 = sample(0:3,100, TRUE)
x_3 = sample(1:3, 100, TRUE)
finalwt = runif(n = 100,min = 0, max = 1)
ds = as.data.frame(cbind(y_4,x_3,finalwt))
svydes = svydesign(ids = ~0, weights = ~finalwt, data = ds)
x1 = subset(svydes,x_3 == 1)
svychisq(~y_4 , x1, statistic ="F",na.rm = TRUE)我得到以下错误:“formula[2][2]中的错误:'symbol‘类型的对象不可子集”。有没有人知道发生了什么或者如何修复它?
同样,尝试使用survey包执行一些类似操作时,以下代码也会显示相同的错误:
summary(svytable(~y_4,x1),statistic = "F")我试着做一个可重复的例子,但是我的实际调查样本有簇和层,所以我不确定如何在我的例子中重现它。欢迎提出建议!实际的测量设计代码如下所示:
svydes= svydesign(id =~`_PSU`,strata =~ `_STSTR`, weights =~finalwt, data = ds, nest = TRUE )发布于 2021-04-29 11:59:42
svychisq的帮助页面显示
目前,svychisq只适用于二维表格。
如果它确实适用于单向表(它不能),那么您所使用的语法就是正确的。
https://stackoverflow.com/questions/67248516
复制相似问题