如何在lavaan模型输出摘要中关闭变量名称缩写?
关闭lavaan模型摘要中的变量名自动缩写
问题描述
使用lavaan包生成模型输出摘要时,长变量名会被自动缩短。实际数据中部分长变量名仅相差一个字符或数字,完整显示变量名将更便于区分,但在lavaan官方文档中未找到直接关闭该功能的设置参数。
示例代码及输出:
library(lavaan) # 重命名变量 names(mtcars)[names(mtcars) == "mpg"] <- "An_Incredibly_Long_Variable_Name" names(mtcars)[names(mtcars) == "hp"] <- "An_Even_Longer_Longer_Longer_Name" names(mtcars)[names(mtcars) == "gear"] <- "VeryVeryVeryLong" names(mtcars)[names(mtcars) == "cyl"] <- "LongLongLongLong" # 构建模型 model <- 'An_Incredibly_Long_Variable_Name ~ An_Even_Longer_Longer_Longer_Name + VeryVeryVeryLong + LongLongLongLong' fit <- sem(model, "std", data = mtcars) summary(fit) #> lavaan 0.6.14 ended normally after 18 iterations #> #> Estimator DWLS #> Optimization method NLMINB #> Number of model parameters 5 #> #> Number of observations 32 #> #> Model Test User Model: #> Standard Scaled #> Test Statistic 0.000 0.000 #> Degrees of freedom 0 0 #> #> Parameter Estimates: #> #> Standard errors Robust.sem #> Information Expected #> Information saturated (h1) model Unstructured #> #> Regressions: #> Estimate Std.Err z-value P(>|z|) #> An_Incredibly_Long_Variable_Name ~ #> An_Evn_L_L_L_N -0.039 0.012 -3.264 0.001 #> VeryVeryVryLng 2.023 0.693 2.920 0.003 #> LongLongLngLng -1.208 0.563 -2.146 0.032 #> #> Intercepts: #> Estimate Std.Err z-value P(>|z|) #> .An_Incrd_L_V_N 25.869 4.310 6.001 0.000 #> #> Variances: #> Estimate Std.Err z-value P(>|z|) #> .An_Incrd_L_V_N 8.318 1.929 4.312 0.000
解决方法
方法1:提取完整参数并自定义打印宽度
使用parameterEstimates()函数获取包含完整变量名的参数结果,再通过print()的width参数强制显示完整内容:
# 提取完整参数估计表 full_estimates <- parameterEstimates(fit) # 设置无限宽度以显示完整变量名 print(full_estimates, width = Inf)
方法2:调整全局打印宽度
如果需要保留summary()的输出格式,可先调整R的全局输出宽度,让lavaan有足够空间显示完整变量名:
# 设置全局输出宽度为200(可根据变量名长度调整) options(width = 200) # 再次输出摘要 summary(fit)
内容的提问来源于stack exchange,提问作者jrcalabrese
相关产品推荐
相关产品推荐

