执行CFA后调用summary时出现lav_object_summary参数错误求助
验证性因子分析(CFA)运行报错解决
问题代码
DATA <- read_excel("FINAL DATA.xlsx") CFA1 <-' F1 =~ Q1 + Q2 + Q3 + Q4 F2 =~ Q5 + Q6 + Q7 + Q8 F3 =~ Q9 + Q10 + Q11 + Q12 F4 =~ Q13 + Q14 + Q15 + Q16 M =~ 1*F1 + 1*F2 + 1*F3 + 1*F4 F1 ~~ F2 F1 ~~ F3 F1 ~~ F4 F2 ~~ F3 F2 ~~ F4 F3 ~~ F4 ' f1 <- sem(CFA1, data= PHD_FINAL_DATA, std.lv=TRUE, ordered=c("Q1","Q2","Q3","Q4", "Q5","Q6","Q7","Q8", "Q9","Q10","Q11","Q12", "Q13","Q14","Q15","Q16")) summary(f1, rsquare= TRUE, fit.measures=TRUE)
报错信息
Error in lav_object_summary(object = object, header = header, fit.measures = fit.measures, : unused argument (std.nox = std.nox)
原因分析
- lavaan包版本兼容性问题:该错误大多源于使用的lavaan版本过旧,或包安装不完整导致内部函数参数不匹配。
std.nox是lavaan内部控制标准化输出的参数,旧版本的summary.lavaan函数未适配该参数,进而触发报错。 - 数据对象名不匹配:代码中读取数据存入
DATA对象,但sem()函数调用时使用PHD_FINAL_DATA,会导致数据未正确传入模型,虽不是直接触发当前报错的原因,但会引发后续模型运行问题。
解决方案
1. 更新lavaan到最新稳定版
在R控制台运行以下命令更新包:
install.packages("lavaan")
更新完成后重启R,再重新运行代码。
2. 修正数据对象名不一致问题
确保读取数据的对象名和sem()调用时的对象名一致,避免数据传递错误。
3. 排除包冲突干扰
重启R后,仅加载运行代码所需的包(readxl和lavaan),避免其他包的函数与lavaan冲突。
修正后的完整代码
# 加载所需包 library(readxl) library(lavaan) # 读取数据,统一对象名 PHD_FINAL_DATA <- read_excel("FINAL DATA.xlsx") # 定义CFA模型 CFA1 <-' F1 =~ Q1 + Q2 + Q3 + Q4 F2 =~ Q5 + Q6 + Q7 + Q8 F3 =~ Q9 + Q10 + Q11 + Q12 F4 =~ Q13 + Q14 + Q15 + Q16 M =~ 1*F1 + 1*F2 + 1*F3 + 1*F4 F1 ~~ F2 F1 ~~ F3 F1 ~~ F4 F2 ~~ F3 F2 ~~ F4 F3 ~~ F4 ' # 拟合模型 f1 <- sem(CFA1, data= PHD_FINAL_DATA, std.lv=TRUE, ordered=c("Q1","Q2","Q3","Q4", "Q5","Q6","Q7","Q8", "Q9","Q10","Q11","Q12", "Q13","Q14","Q15","Q16")) # 输出模型结果 summary(f1, rsquare= TRUE, fit.measures=TRUE)
内容的提问来源于stack exchange,提问作者R.M. L.
相关产品推荐
相关产品推荐

