【问题标题】:Binomial tree table in RR中的二叉树表
【发布时间】:2021-11-30 08:05:26
【问题描述】:

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

矩阵 1:

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

矩阵 2:

如何使用 for 循环来做到这一点?

【问题讨论】:

标签: r tree


【解决方案1】:

这是一个完成它的函数,但不是 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

【讨论】:

  • 谢谢你,效果很好,你太棒了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-20
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
  • 2017-04-14
相关资源
最近更新 更多