You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中将plsr模型摘要导出为美观的HTML表格

提取PLSR模型摘要并生成美观HTML表格的方法

我之前也碰到过这个问题——pls包的plsr模型摘要确实不像lm那样能直接用现成工具导出美观表格,不过摸索出几个实用的办法,能快速提取信息并生成HTML表格,分享给你:

首先要明确:summary(my.plsr.model)返回的是一个summary.plsr类型的独立对象,不是模型本身的属性,所以直接用str(my.plsr.model)找不到这些内容。你需要先把摘要结果存为变量,再提取里面的信息:

sum_plsr <- summary(my.plsr.model)
# 查看所有可提取的元素结构
str(sum_plsr)

接下来分两种常用的表格生成方案:


方案1:用knitr + kableExtra快速生成Bootstrap风格表格

这个方案适合快速生成简洁美观、支持网页自适应的HTML表格,自带hover和条纹效果:

步骤1:整理关键信息为数据框

先把模型基本信息和组件性能指标分别整理成结构化数据:

# 提取模型核心基本信息
basic_info <- data.frame(
  "项目" = c("X维度", "Y维度", "拟合方法", "组件数量"),
  "详情" = c(
    paste(sum_plsr$Xvar[1], sum_plsr$Xvar[2], sep = " × "),
    paste(sum_plsr$Yvar[1], sum_plsr$Yvar[2], sep = " × "),
    sum_plsr$method,
    sum_plsr$ncomp
  )
)

# 提取组件性能数据(兼容交叉验证场景)
perf_data <- as.data.frame(cbind(
  "组件数" = 1:sum_plsr$ncomp,
  "训练集R²" = sum_plsr$R2$val[1,],
  "训练集RMSE" = sum_plsr$RMSE$val[1,],
  "验证集R²" = if(!is.null(sum_plsr$R2$adj)) sum_plsr$R2$adj[1,] else NA,
  "验证集RMSE" = if(!is.null(sum_plsr$RMSE$adj)) sum_plsr$RMSE$adj[1,] else NA
))

步骤2:生成并导出HTML表格

library(knitr)
library(kableExtra)

# 生成基本信息表格
kable(basic_info, format = "html", caption = "PLSR模型基本信息") %>%
  kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover"))

# 生成组件性能表格
kable(perf_data, format = "html", caption = "PLSR模型组件性能指标") %>%
  kable_styling(bootstrap_options = c("striped", "condensed", "hover")) %>%
  column_spec(1, bold = TRUE)  # 将组件数列设为粗体突出显示

# 若需保存为独立HTML文件
save_kable(your_table_object, "plsr_summary.html")

方案2:用gt包生成高度自定义的精致表格

如果你需要更个性化的样式(比如自定义配色、数字格式化、标题样式),gt包能实现更细腻的视觉效果:

library(gt)

# 生成基本信息表格
basic_info %>%
  gt() %>%
  tab_header(title = "PLSR模型基本信息") %>%
  tab_style(
    style = cell_text(weight = "bold"),
    locations = cells_column_labels()
  ) %>%
  opt_table_lines()  # 添加表格边框线提升可读性

# 生成组件性能表格
perf_data %>%
  gt() %>%
  tab_header(title = "PLSR模型组件性能") %>%
  fmt_number(columns = 2:5, decimals = 3)  # 将指标列格式化为3位小数
  tab_style(
    style = cell_fill(color = "#f0f8ff"),
    locations = cells_rows(odd)  # 为奇数行添加浅蓝背景
  ) %>%
  opt_table_theme(theme = gt_theme_538())  # 套用现成的美观主题

# 保存为独立HTML文件
gtsave(your_gt_table_object, "plsr_summary_gt.html")

小提示

  • 如果你的PLSR模型启用了交叉验证(调用时加了validation = "CV"),sum_plsr里会自动包含验证集的指标,上面的代码已经兼容这种场景;
  • 可以根据自己的需求调整表格的配色、字体、边框等样式,两个包都支持丰富的自定义参数。

内容的提问来源于stack exchange,提问作者andemexoax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:54:00