R中只有底1的三角形和只有0的顶部三角形的矩阵

时间:2020-09-26 02:38:47

标签: r function dataframe loops matrix

我想知道是否有一种方法可以生成具有任何请求数量的行和列的矩阵,以使得底部三角形仅1 s,顶部三角形仅0 s。

预期输出的示例如下所示。在R中有可能吗?

     [,1] [,2] [,3] [,4]
[1,]    0    0    0    0
[2,]    1    0    0    0
[3,]    1    1    0    0
[4,]    1    1    1    0
[5,]    1    1    1    1

1 个答案:

答案 0 :(得分:4)

您可以使用lower.tri辅助功能

lower_mat <- function(r, c) {
  m <- matrix(0, nrow=r,ncol=c)
  m[lower.tri(m)] <- 1
  m
}

lower_mat(5,4)
#      [,1] [,2] [,3] [,4]
# [1,]    0    0    0    0
# [2,]    1    0    0    0
# [3,]    1    1    0    0
# [4,]    1    1    1    0
# [5,]    1    1    1    1
相关问题