如何在循环中形成循环以反映模式中的跳跃以创建下面给出的特定模式?

How to form loop inside loop that reflects jumpings in the pattern to create a certain pattern that is given below?

当我研究成对条件和部分格兰杰因果关系时,我决定通过一个简单的函数来表达给定系统中每个变量的效果接收。这里,"pairwise"是高级G因果理论意义上的;即,当独立(原因)变量的数量和因变量的数量以第三组变量(可能有超过 1 个变量)为条件时,它们都是 1。请注意,在高级 GC 理论中,考虑了混杂效应,并将这些效应从主效应中减去,因此,发现了一个方向上的明显效应,即与混杂变量的效应隔离开来;因此,这是真正的因果关系。

现在,为了反映效果接收矩阵(5x6),首先考虑效果矩阵:

V1 V2 V3 V4 V5 V6 (Variables)
1  6  11 16 21 26
2  7  12 17 22 27
3  8  13 18 23 28
4  9  14 19 24 29
5  10 15 20 25 30

从 1 到 30 的每个单元格都有一个 p 值(我自己没有输入准确的 p 值;而是为每个 p 值输入了位置索引)。它是这样读的:

(忽略变量对自身的影响:每个变量都是自身的原因!)

从 V1 到 V2 以其他 (V3,V4,V5,V6) 为条件的 GC 为 1。因此,V2 收到的效果为 1。

从 V1 到 V3 以其他 (V2,V4,V5,V6) 为条件的 GC 为 2。因此,V3 收到的效果为 2。

从 V1 到 V4 以其他 (V2,V3,V5,V6) 为条件的 GC 为 3。因此,V4 的效果为 3。 ...
从 V5 到 V4 以其他(V1、V2、V3、V6)为条件的 GC 是 24。因此,V4 收到的效果是 24。 ... 从 V2 到 V1 的 GC 以其他 (V3,V4,V5,V6) 为条件是 6。因此,V1 正在接收 6 的效果。

这样,效果接收值就推导出来了。我想将这些效果接收值嵌入到一个 6x5 矩阵中(这里,6 用于变量):

效果接收矩阵(6x5):

Vars
V1 6  11 16 21 26
V2 1  12 17 22 27
V3 2   7 18 23 28
V4 3   8 13 24 29
V5 4   9 14 19 30
V6 5  10 15 20 25

我想创建一个包含以上条目的矩阵:即 a[1,1]=6 a[1,2]=11 a[2,3]=17...

我试过的: 我尝试了循环内循环,思想模式操作可能会有所帮助。反正我没解决。 我观察到的:
1.有规律:增加5*k
2. 此图案在跳跃时损坏。例如,对于V1,在i=1处有一个跳跃;对于 V2,在 i=2 处有一个跳跃;对于V6,没有跳跃,因为直到那个跳跃点,V6的所有效果接收都被记录下来。

任何帮助将不胜感激。

让我们放弃像格兰杰因果关系这样的高级行话,而将其称为效果。

下面的表达方式是不是更有表现力?

vars <- 1:6
id <- c()
for (i in 1:6){
  id <- c(id, vars[-i])
}
df1 <- stack(df)
df1$id <- id
library(tidyr)
spread(df1, ind, values)
#  id  1  2  3  4  5  6
#1  1 NA  6 11 16 21 26
#2  2  1 NA 12 17 22 27
#3  3  2  7 NA 18 23 28
#4  4  3  8 13 NA 24 29
#5  5  4  9 14 19 NA 30
#6  6  5 10 15 20 25 NA
spread(df1, id, values)
#  ind  1  2  3  4  5  6
#1   1 NA  1  2  3  4  5
#2   2  6 NA  7  8  9 10
#3   3 11 12 NA 13 14 15
#4   4 16 17 18 NA 19 20
#5   5 21 22 23 24 NA 25
#6   6 26 27 28 29 30 NA

读起来很简单,比如1到2的效果是1,2到1的效果是6,5到6的效果是25

使用的输入

df <- structure(list(`1` = 1:5, `2` = 6:10, `3` = 11:15, `4` = 16:20, 
    `5` = 21:25, `6` = 26:30), .Names = c("1", "2", "3", "4", 
"5", "6"), class = "data.frame", row.names = c(NA, -5L))