0

我想使用 semPaths() 创建一个带有分类响应变量的 SEM 模型的路径图。但是我遇到了一个错误:

library(lavaan)
library(semPlot)

table.7.5 <-read.table("http://www.da.ugent.be/datasets/Agresti2002.Table.7.5.dat",header=TRUE)

table.7.5$mental <- ordered(table.7.5$mental,levels = c("well","mild","moderate","impaired"))

model <- "mental ~ ses + life"

fit <- sem(model, data=table.7.5)

semPaths(fit,"std",edge.label.cex = 0.5, curvePivot=TRUE,layout = "tree")

错误是:

colnames<-( , value = "mental") 中的错误*tmp*:尝试在小于二维的对象上设置“colnames”

谢谢

4

2 回答 2

1

上述解决方案解决了当前 CRAN 版本的 semPlots() 的问题。与此同时,这个问题已经在开发版中得到解决。要安装它,请运行:

library(devtools)
install_github("SachaEpskamp/semPlot")

有关更多详细信息,请阅读以下内容:

https://github.com/SachaEpskamp/semPlot/issues/9

于 2017-01-23T10:19:05.000 回答
0

有人通过将 cov 的内容替换为 res.cov 来帮助我解决问题。我不知道为什么,但是当它是有序数据时,lavaan 将隐含的协方差矩阵放在 res.cov 而不是 cov 中。

您所要做的就是:

fit@SampleStats@cov<-fit@SampleStats@res.cov

打电话前:

semPaths(fit,"std",edge.label.cex = 0.5, curvePivot=TRUE,layout = "tree")
于 2017-01-21T13:14:52.877 回答