Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 用对角线索引矩阵中的上三角形或下三角形_R_Matrix - Fatal编程技术网

R 用对角线索引矩阵中的上三角形或下三角形

R 用对角线索引矩阵中的上三角形或下三角形,r,matrix,R,Matrix,如何为包含对角线的上三角矩阵或下三角矩阵编制索引 我的矩阵如下所示: [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 70.291456 NA NA NA NA NA NA NA [2,] 47.059392 31.505769 NA NA NA

如何为包含对角线的上三角矩阵或下三角矩阵编制索引

我的矩阵如下所示:

          [,1]      [,2]     [,3]     [,4]      [,5]     [,6]     [,7]      [,8]
[1,] 70.291456        NA       NA       NA        NA       NA       NA        NA
[2,] 47.059392 31.505769       NA       NA        NA       NA       NA        NA
[3,]  6.019712  4.030134 0.515524       NA        NA       NA       NA        NA
[4,]  2.993088  2.003841 0.256326 0.127449        NA       NA       NA        NA
     row col
[1,]   2   1
[2,]   3   1
[3,]   4   1
[4,]   5   1
[5,]   6   1
[6,]   7   1
[7,]   8   1
我所拥有的是:

rows = 10    
cbind(row = unlist(lapply(2:rows, function(x) x:rows), use.names = FALSE), 
      col = rep(z[-length(z)], times = rev(tail(z, -1))-1))
上述代码的输出如下所示:

          [,1]      [,2]     [,3]     [,4]      [,5]     [,6]     [,7]      [,8]
[1,] 70.291456        NA       NA       NA        NA       NA       NA        NA
[2,] 47.059392 31.505769       NA       NA        NA       NA       NA        NA
[3,]  6.019712  4.030134 0.515524       NA        NA       NA       NA        NA
[4,]  2.993088  2.003841 0.256326 0.127449        NA       NA       NA        NA
     row col
[1,]   2   1
[2,]   3   1
[3,]   4   1
[4,]   5   1
[5,]   6   1
[6,]   7   1
[7,]   8   1

但这不包括对角线,我在矩阵中保留了对角线(第2行应该与[,1]和[,2]匹配,但它不匹配)

如果目标是获得下对角线以及对角线的行数和列数,那么如果
m
是输入矩阵,则有两种解决方案:

1)

ok <- lower.tri(m, diag = TRUE)
cbind(row = row(m)[ok], col = col(m)[ok])
g <- expand.grid(row = 1:nrow(m), col = 1:ncol(m)) # grid
g[lower.tri(m, diag = TRUE), ]

ok如果目标是获得下对角线以及对角线的行数和列数,那么如果
m
是输入矩阵,则有两种解决方案:

1)

ok <- lower.tri(m, diag = TRUE)
cbind(row = row(m)[ok], col = col(m)[ok])
g <- expand.grid(row = 1:nrow(m), col = 1:ncol(m)) # grid
g[lower.tri(m, diag = TRUE), ]

ok如果目标是获得下对角线以及对角线的行数和列数,那么如果
m
是输入矩阵,则有两种解决方案:

1)

ok <- lower.tri(m, diag = TRUE)
cbind(row = row(m)[ok], col = col(m)[ok])
g <- expand.grid(row = 1:nrow(m), col = 1:ncol(m)) # grid
g[lower.tri(m, diag = TRUE), ]

ok如果目标是获得下对角线以及对角线的行数和列数,那么如果
m
是输入矩阵,则有两种解决方案:

1)

ok <- lower.tri(m, diag = TRUE)
cbind(row = row(m)[ok], col = col(m)[ok])
g <- expand.grid(row = 1:nrow(m), col = 1:ncol(m)) # grid
g[lower.tri(m, diag = TRUE), ]

好的,你试过
?lower.tri
功能吗?你试过搜索吗?你试过
?lower.tri
功能吗?你试过搜索吗?你试过
?lower.tri
功能吗?你试过搜索吗所以?
哪个(lower.tri(m,diag=TRUE),arr.ind=T)也能很好地工作。
哪个(lower.tri(m,diag=TRUE),arr.ind=T)也能很好地工作。
哪个(lower.tri(m,diag=TRUE),arr.ind=T)也能很好地工作。
哪个(lower.tri(m,diag=TRUE),arr.ind=T)
也能很好地工作。