我想将princomp PCA的摘要(必须是princomp)作为数据框,以便我可以用表格格式化表格以生成报告。
这是我尝试使用的代码,由此可以清楚地知道我要做什么;
for loop
我收到此错误:
as.data.frame.default(summary(pca.data))中的错误:无法强制 类“ summary.princomp”到data.frame
编辑:我希望将sum.data的输出作为一个数据框,以便可以使用kable函数对其进行格式化。
kable( as.data.frame(summary(pca.data)) )
答案 0 :(得分:2)
假设您正在尝试获取下表
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
Standard deviation 1.4126051 1.1441266 0.9542661 0.63918520 0.61346533
Proportion of Variance 0.3990906 0.2618052 0.1821247 0.08171154 0.07526794
Cumulative Proportion 0.3990906 0.6608958 0.8430205 0.92473206 1.00000000
实际上并没有存储在任何地方,只有在运行stats:::print.summary.princomp
函数时才会创建。您可以提取该函数中构成该表的部分。例如
pca_importance <- function(x) {
vars <- x$sdev^2
vars <- vars/sum(vars)
rbind(`Standard deviation` = x$sdev, `Proportion of Variance` = vars,
`Cumulative Proportion` = cumsum(vars))
}
所以现在您有了一个ktable可以使用的对象
kable( pca_importance(sum.data) )