作为数据帧的Princomp摘要

作为数据帧的Princomp摘要,r,R,我想将princomp PCA的摘要(必须是princomp)作为一个数据帧,这样我就可以用kable为报告格式化表 这是我尝试使用的代码,应该可以清楚地看出我想做什么 kable( as.data.frame(summary(pca.data)) ) 我得到这个错误: as.data.frame.default(摘要(pca.data))中出错:无法强制 将“summary.princomp”类初始化为data.frame 编辑:我希望sum.data的输出作为数据帧,这样我就可以使用kab

我想将princomp PCA的摘要(必须是princomp)作为一个数据帧,这样我就可以用kable为报告格式化表

这是我尝试使用的代码,应该可以清楚地看出我想做什么

kable( as.data.frame(summary(pca.data)) )
我得到这个错误:

as.data.frame.default(摘要(pca.data))中出错:无法强制 将“summary.princomp”类初始化为data.frame

编辑:我希望sum.data的输出作为数据帧,这样我就可以使用kable函数对其进行格式化

library("knitr")
library("kableExtra")

set.seed(1)
data <- data.frame(
X = sample(1:10), X2 = sample(1:10), X3 = sample(1:10), X4 = sample(1:10), 
X5 = sample(1:10)
)

pca.data <- princomp(data, cor=TRUE)
sum.data <- summary(pca.data)
kable(as.data.frame(sum.data))
库(“knitr”)
图书馆(“kableExtra”)
种子(1)

数据假设您试图获得下表

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))
}

我用一些示例代码编辑了这个问题。您希望将输出的哪一部分用于数据帧?看看
名称(sum.data)
-摘要由9个不同的项目组成,这只是我想要的摘要运行时的打印输出(每个组件的差异等)。我现在有答案了,没关系。
kable( pca_importance(sum.data) )