在R中运行需要两个元素并希望将两个元素逐个进行比较的函数 [英] Run function in R that requires two elements and want to compare two by two

查看:0
本文介绍了在R中运行需要两个元素并希望将两个元素逐个进行比较的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道这可能是一个非常简单的自动迭代问题。

我正在使用geomorph运行PLS回归。

此函数需要two 3D arrays内部(A1A2),如上一链接中的文档所示。

基本上该函数为:

two.b.pls(A1, A2, iter = 999)

重点是我有8个不同的3D矩阵数组,并且希望对任何可能的组合运行PLS分析。

更明确地说,如果我的数组被命名为Group_1Group_2...Group_8,我需要迭代地分析这些组合:

two.b.pls(Group_1, Group_2, iter = 999)
two.b.pls(Group 1, Group 3, iter = 999)
...
two.b.pls(Group_7, Group_8, iter = 999)

推荐答案

如果向量中有对象名称,请使用combn返回成对组合,get值并将它们传递给two.b.pls函数

nm1 <- c('Frontal', 'Face', 'Parietal_L', 'Parietal_R', 'Temporal_L', 'Temporal_R', 'Occipital', 'Sphenoid')
out <- combn(nm1, 2, FUN = function(x)
     two.b.pls(get(x[1]), get(x[2]), iter = 999), simplify = FALSE)

如果我们想要获得组合名称,一个选项是namelist元素和combn向量输出

names(out) <- combn(nm1, 2, FUN = paste, collapse="_")

这篇关于在R中运行需要两个元素并希望将两个元素逐个进行比较的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆