我正在从头开始学习R,并尝试使用以下代码测试中介效果:
NQ21 <- as.numeric (as.factor(DB$Q21))
ModelA <-
'NQ21 ~ a*OCBI
CAC ~ b*NQ21
CAC ~ cp*OCBI
ab:=a*b
total := cp + ab'
fsem1 <- sem(ModelA, data = DB)
summary(fsem1, standardized = TRUE)
而是得到了一个错误:
Error in if ((!is.matrix(model)) | ncol(model) != 3) stop("model argument must be a 3-column matrix") :
argument is of length zero
这个错误是什么意思?
发布于 2020-09-07 19:59:14
这是对你的错误的猜测。您将从sem
包而不是lavaan
调用sem
。如果我使用这样的示例data.frame:
set.seed(1234)
DB <- data.frame(matrix(runif(100),ncol=5))
colnames(DB) = c("OCBI","CAC","a","b","cp")
DB$Q21 = rep(paste0("Q",1:4),5)
DB$NQ21 = as.numeric(factor(DB$Q21))
ModelA <-
'NQ21 ~ a*OCBI
CAC ~ b*NQ21
CAC ~ cp*OCBI
ab:=a*b
total := cp + ab'
使用sem::sem
时,我得到了相同的错误:
library(sem)
sem(ModelA, data = DB)
Error in if ((!is.matrix(model)) | ncol(model) != 3) stop("model argument must be a 3-column matrix") :
argument is of length zero
我们卸载包sem
并加载lavaan
detach("package:sem",unload=TRUE)
library(lavaan)
sem(ModelA, data = DB)
lavaan 0.6-6 ended normally after 21 iterations
Estimator ML
Optimization method NLMINB
Number of free parameters 5
Number of observations 20
Model Test User Model:
Test statistic 0.000
Degrees of freedom 0
https://stackoverflow.com/questions/63775190
复制相似问题