R 中的二叉树 table

Binomial tree table in R

我在 R 中生成了以下二叉树 table。

矩阵 1:

我想把这个矩阵转换成另一种类型。

矩阵 2:

如何使用 for 循环执行此操作?

这是一个完成它的函数,但没有使用 for 循环:

fBT <- function(m) {
  n <- nrow(m)
  v <- rep(c(m[0], NA), n*(2*n - 1))
  i <- c(n, rep(2L, n*(n + 1)/2 - 1))
  
  if (n > 2L) {
    ii <- 2:(n - 1)
    i[ii*(ii - 1)/2 + 1] <- seq(2*n - 2, 4, -2)
  }
  
  v[cumsum(i)] <- m[upper.tri(m, diag = TRUE)]
  return(matrix(v, ncol = n))
}

n <- 4L
m <- matrix(nrow = n, ncol = n)
m[upper.tri(m, diag = TRUE)] <- 1:(n*(n + 1)/2)
m
#>      [,1] [,2] [,3] [,4]
#> [1,]    1    2    4    7
#> [2,]   NA    3    5    8
#> [3,]   NA   NA    6    9
#> [4,]   NA   NA   NA   10
fBT(m)
#>      [,1] [,2] [,3] [,4]
#> [1,]   NA   NA   NA    7
#> [2,]   NA   NA    4   NA
#> [3,]   NA    2   NA    8
#> [4,]    1   NA    5   NA
#> [5,]   NA    3   NA    9
#> [6,]   NA   NA    6   NA
#> [7,]   NA   NA   NA   10