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

如何在R中调用geomorph的two.b.pls实现8个3D数组两两PLS回归分析

实现方案

你可以通过R内置的combn函数生成所有不重复的两两组合,批量调用two.b.pls完成分析,具体代码如下:

# 加载geomorph包
library(geomorph)

# 1. 将所有3D数组存入命名列表,便于后续结果匹配
groups <- list(
  Group_1 = Group_1,
  Group_2 = Group_2,
  Group_3 = Group_3,
  Group_4 = Group_4,
  Group_5 = Group_5,
  Group_6 = Group_6,
  Group_7 = Group_7,
  Group_8 = Group_8
)

# 2. 生成两两组合并批量运行PLS分析
pls_output <- combn(
  x = length(groups),
  m = 2,
  FUN = function(pair_idx) {
    res <- two.b.pls(groups[[pair_idx[1]]], groups[[pair_idx[2]]], iter = 999)
    # 为结果添加配对标签
    attr(res, "group_pair") <- paste(names(groups)[pair_idx], collapse = " vs ")
    return(res)
  },
  simplify = FALSE
)

# 3. 为结果列表命名,可直接通过配对名称调取对应分析结果
names(pls_output) <- sapply(pls_output, function(x) attr(x, "group_pair"))

结果调用示例

  • 调取指定配对的分析结果:pls_output[["Group_1 vs Group_2"]]
  • 批量提取所有配对的显著性P值:
all_pvalue <- sapply(pls_output, function(x) x$P.value)
print(all_pvalue)

如果不需要保留完整分析结果仅需要统计指标,可直接在combn的自定义函数中返回对应指标,降低内存占用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:30:01