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)
也能很好地工作。