在semplot中标记节点时遇到问题> sempaths

时间:2015-12-02 19:59:41

标签: r plot

对于从CFA模型标记节点(使用Lavaan计算)并使用semPlot包进行绘图,我们将不胜感激。

我没有指定模型的问题。但是,当涉及到绘制输出(fit3)时,每当我尝试将节点标签从数据集中存在的节点标签更改为更适合发布的节点时,我都会收到错误。我得到的错误是:

  

if(border){:缺少值需要TRUE / FALSE

时出错

情节的代码如下:

semPaths(fit3,  what = "std", layout = "tree", title = FALSE,  style = "lisrel", 
         nodeLabels = c("Internet\nAddiction", "Engagement", "Withdrawal",
                        "Conflict","Relapse","Tolerance","Mood mod","Salience"),
         sizeMan = 10, sizeLat = 10)

另外需要注意的是,在我包含参数nodeLabels = c("Inter...etc.)之前,我没有绘制模型的任何问题。我还尝试创建标签名称(lbls = c("Inter...etc.)列表,并使用nodeLabels = lbls调用列表,但这会导致出现与上面引用的错误相同的错误消息

  

" if(border){:缺少值需要TRUE / FALSE"

对此的任何帮助和指导都将非常感激。

1 个答案:

答案 0 :(得分:2)

如我所见,错误表示您没有为模型提供足够的标签。

在您的情况下,semPlot期望潜在变量,清单变量和截距的标签。我猜你跳过拦截的标签。

如果您不需要拦截,请尝试添加intercepts = FALSE

semPaths(fit3,  what = "std", layout = "tree", title = FALSE,  style = "lisrel", 
     nodeLabels = c("Internet\nAddiction", "Engagement", "Withdrawal",
                    "Conflict","Relapse","Tolerance","Mood mod","Salience"),
     sizeMan = 10, sizeLat = 10,
     intercepts = FALSE)

如果你想保留拦截,你必须为每个拦截定义一个标签。