我计划针对道德问题的观点进行多组验证性因子分析。我将比较来自比利时瓦隆和弗兰德斯地区的人。我的两个样本需要加权,以便在年龄,性别,教育和政党选择方面代表他们的人口。
我的数据集中已经提供的采样权重。然后我创建了一个变量wreg
,为瓦隆和法兰德斯的受访者组合了权重。
我是R的新手,并阅读有关lavaan.survey
和svydesign
的文档以了解代码。但是,我还没有成功写出正确的东西。我总是得到关于权重的部分的错误消息。显然程序无法正确读取采样权重变量。
以下是我使用的代码:
library(lavaan.survey)
f <- "C:/.../bges07_small.csv"
s <- read.csv(f,sep=";")
r <- s[is.na(s$flawal),]
rDesign <- svydesign(ids=~1, data=r, weights=~wreg)
model.1 <- 'ethic =~ q96_1+ q96_2 +q96_3'
fit <- cfa(model.1, data=r,ordered=c("q96_1","q96_2","q96_3"))
summary(fit, fit.measures=TRUE, modindices=FALSE,standardized=FALSE)
这是我的错误信息:
Erreur dans 1/as.matrix(weights) :
argument non numérique pour un opérateur binaire
有关如何使用R编写模型的任何建议?非常感谢!
答案 0 :(得分:0)
从summary(r$wreg)
的结果来看,看起来您的权重列是一个因素,而不是数字向量。确保您已正确读取数据,并且该列不包含任何类似字符的值。您可以使用
r$wreg <- as.numeric(r$wreg)
在运行模型之前。而且,那些看起来非常大的重量值。你确定它们是正确的吗?