将因子分数添加到原始数据集

时间:2011-07-27 09:38:47

标签: r

我运行因子分析并生成5个因子。现在,我想在原始数据集中添加这些因子以运行回归,使用自变量保持这些因子。谁能告诉我怎么做怎么办?我用于因子分析的代码如下:

result.1<-subset(result,select=c(17:27))
fa.parallel(result.1)
View(result.1)
result.2<-factanal(result.1,factors=5,rotation="promax")
print(result.2)
print(result.2, digits = 2, cutoff = .2, sort = TRUE)
colnames(result.2$loadings)<-c("Fac_1","Fac_2","Fac_3","Fac_4","Fac_5")
print(loadings(result.2), digits = 2, cutoff = .2, sort = TRUE)

我尝试使用cbind来获取新的变量因子列,但遗憾的是它不起作用。

result.fac<-cbind(result,result.2)

此致 ARI

2 个答案:

答案 0 :(得分:5)

您必须将factalal和cbind计算的分数保存到原始数据集中。 E.g:

data <- mtcars
f <- factanal(data, factors=5, rotation="promax", scores="regression")
data <- cbind(data, f$scores)

答案 1 :(得分:2)

您可能有一些缺失的数据导致因子得分矩阵中缺少行。 你需要匹配rownames,如下所示:

scores <- result.2$scores
result.fac <- cbind(result[as.integer(rownames(scores)),],scores)