首页 > 解决方案 > R中的三重循环

问题描述

我在一棵树中有四个节点表示向量和一个距离函数,用于计算任何节点之间的距离和两个其他节点之间的分歧点。我想实现以下内容:

for all i, for all j, for all k
calculate distance(i,j,k) s.t. k != j != i.

所以对于四个i作为主要节点的每一个,我想得到三个距离。比如以节点1为主节点,我要:(1-->2,3), (1,-->2,4), (1-->3,4).

(1-->2,3)(1-->3,2)例如,and将是相同的值,但(1-->2,3)and (2-->1,3), 不是,因为存在不同的主节点。

我尝试3D array如下制作,然后将值存储在嵌套循环中,但有没有更有效的方法来做到这一点?

任何建议将不胜感激。

 a <- array(rep(1, 4*4*4), dim=c(4, 4, 4))

for (main in 1:4){
  for (i in 1:4) {
    if (i != main){
      for (j in 1:4){
        if (j != main & j != i){
      a[main,i,j] <- sqrt( dist(main,i)*dist(main,j) / dist(i,j))}}}}}

标签: rtree

解决方案


推荐阅读