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

R语言主坐标分析(PCO)结果类似prcomp的summary汇总方法求荐

针对cmdscale主坐标分析结果的自定义汇总方案

你可以通过轻量的自定义函数实现和prcomp完全对齐的汇总输出,实现逻辑基于cmdscale返回的特征值计算相关统计量即可。

自定义汇总函数代码

summary.pco <- function(pco_obj, digits = 4) {
  # 提取正特征值(负特征值无实际方差解释意义)
  eig <- pco_obj$eig[pco_obj$eig > 0]
  # 计算标准差
  sdev <- sqrt(eig)
  # 方差占比
  var_prop <- eig / sum(eig)
  # 累计方差占比
  cum_prop <- cumsum(var_prop)
  
  # 组合成结果矩阵,和prcomp的summary格式对齐
  importance <- rbind(
    `Standard deviation` = round(sdev, digits),
    `Proportion of Variance` = round(var_prop, digits),
    `Cumulative Proportion` = round(cum_prop, digits)
  )
  # 列名改为PCO前缀
  colnames(importance) <- paste0("PCO", seq_along(eig))
  
  # 输出格式化结果
  cat("Importance of PCO components:\n")
  print(importance)
  # 不可见返回结果矩阵方便后续调用
  invisible(importance)
}

调用示例

# 示例数据计算PCO
data(cars)
pco <- cmdscale(dist(cars), eig=TRUE)
# 调用自定义汇总函数
summary.pco(pco)

输出效果示例

Importance of PCO components:
                           PCO1    PCO2
Standard deviation     26.1252 3.0808
Proportion of Variance  0.9863 0.0137
Cumulative Proportion   0.9863 1.0000

补充说明

  • 函数默认自动过滤负特征值,这部分是度量校正产生的残差,无实际方差解释意义,符合常规PCO分析规范
  • 可通过digits参数自定义输出小数位数,默认保留4位,和prcomp的默认输出格式一致
  • 如果需要适配S3泛型调用,可在生成pco对象后添加代码class(pco) <- c("pco", class(pco)),之后直接调用summary(pco)即可触发汇总方法,无需每次指定函数名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:45:02