You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将lavaan包CFA分析的因子值添加至原始数据集?

如何将lavaan CFA的因子得分合并到原始数据集?

你遇到的问题核心在于:lavaan拟合出来的fit对象是S4类,不能像普通列表那样用$符号直接访问内部元素,这就是报错的原因。不过你其实已经离正确方法很近了,下面给你两种简单可行的解决思路:

方法一:用你已生成的data_factor直接合并

你已经通过data_factor <- predict(fit)得到了包含5个因子得分的数据框,只要把它和原始数据集直接合并即可:

基础R写法

data_CFA <- cbind(dataset, data_factor)

tidyverse写法(如果你习惯用dplyr)

library(dplyr)
data_CFA <- dataset %>% bind_cols(data_factor)

因为predict(fit)生成的因子得分和原始数据集的行数完全匹配,所以不用担心合并时的行对齐问题。

方法二:直接用lavPredict获取得分并合并

如果你不想单独生成data_factor,也可以一步到位完成得分获取与合并:

# 用回归法计算并获取因子得分
factor_scores <- lavPredict(fit, type = "regression")
# 合并到原始数据集
data_CFA <- cbind(dataset, factor_scores)

这里的lavPredict是lavaan官方推荐的获取因子得分的函数,比直接操作对象内部元素更安全可靠。

另外提一句,你之前写的factorERS那段代码其实是多余的,不需要单独提取原始条目就能完成因子得分的合并哦~

内容的提问来源于stack exchange,提问作者Lies Henderickx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:14:35