之前一直是用semPlot这个包给来进行结构方程模型的路径绘制,自从用了tidySEM这个包后就发现之前那个包不香了,今天就给大家分享一下tidySEM。
这个包的很大特点就是所有的画图原始都是存在数据框中的,这样以来我们就可以像编辑excel一样改变图中元素的位置,非常的个性化。
例子说明
- 画图之前我们需要有一个画图的对象fit,也就是你的拟合成功的SEM模型
- 第二步是要将这个对象的图中的可以编辑的节点通过get_nodes(fit)得到,或者通过get_edges(fit)得到可以编辑的边
- 然后用get_layout()设定你想要的个性化布局
- 第四步就是用graph_sem出图了
先跑个CFA试试手?
library(lavaan)
HS.model <- ' visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9 '
fit <- cfa(HS.model, data=HolzingerSwineford1939)
上面的代码运行后就可以得到一个完整的验证性因子分析的结果对象fit,我们可以先画出这个对象的默认路径图,代码如下:
graph_sem(model = fit)
运行后即可得到图:
这个图其实挺不错的啦,不过我还是想自己编辑一下图的布局,怎么做呢?
我先使用get_layout()把现在的布局提取出来,提出来后是一个矩阵,这个矩阵和图上面的元素是对应的,空白处就对应的是“NA”,提取布局的代码如下:
get_layout(fit)
结果如下,可以看到图中各个元素都对应在一个3*8的矩阵中,元素的位置就是我们画出图的位置:空白部分就全是NA: