我想把princomp的摘要(必须是princomp)作为一个数据文件,这样我就可以将表格式化为报告。
下面是我尝试使用的代码,从这里可以清楚地看到我想要做什么;
kable( as.data.frame(summary(pca.data)) )我知道这个错误:
As.data.frame.default(汇总(pca.data))中的错误:无法强制类“summary.princomp”到data.frame
编辑:我想把sum.data的输出作为数据格式,这样我就可以使用可使用的函数来格式化它。
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))发布于 2018-11-05 16:17:35
假设您正在尝试获取下表
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) )https://stackoverflow.com/questions/53157693
复制相似问题