我想使用semPaths()创建一个带有分类响应变量的扫描电镜模型的路径图。然而,我遇到了一个错误:
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<-(*tmp*,value = "mental")中出错:尝试在少于两个维度的对象上设置“colname”
谢谢
发布于 2017-01-21 21:14:53
有人帮我解决了这个问题,用res.cov替换了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-23 18:19:05
上面的解决方案解决了当前CRAN版本semPlots()的问题。同时,这个问题已经在开发版本中得到了解决。要安装它,请运行以下命令:
library(devtools)
install_github("SachaEpskamp/semPlot")有关更多详细信息,请阅读以下内容:
https://stackoverflow.com/questions/41642218
复制相似问题