Princomp摘要作为数据框

时间:2018-11-05 15:49:54

标签: r

我想将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)) )

1 个答案:

答案 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) )