首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Princomp摘要作为数据

Princomp摘要作为数据
EN

Stack Overflow用户
提问于 2018-11-05 15:49:53
回答 1查看 850关注 0票数 1

我想把princomp的摘要(必须是princomp)作为一个数据文件,这样我就可以将表格式化为报告。

下面是我尝试使用的代码,从这里可以清楚地看到我想要做什么;

代码语言:javascript
复制
kable( as.data.frame(summary(pca.data)) )

我知道这个错误:

As.data.frame.default(汇总(pca.data))中的错误:无法强制类“summary.princomp”到data.frame

编辑:我想把sum.data的输出作为数据格式,这样我就可以使用可使用的函数来格式化它。

代码语言:javascript
复制
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))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-05 16:17:35

假设您正在尝试获取下表

代码语言:javascript
复制
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函数时才会创建。您可以提取该函数中构成该表的部分。例如

代码语言:javascript
复制
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可以使用的对象。

代码语言:javascript
复制
kable( pca_importance(sum.data) )
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53157693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档