r - 创建矩阵行索引,当 rowsum > 100 时递增,随后行

标签 r matrix indexing

我有一个矩阵:

mat <- matrix(c(2,11,3,1,2,4,55,65,12,4,6,6,7,9,3,23,16,77,5,5,7),ncol = 3, byrow = TRUE)

     [,1] [,2] [,3]
[1,]    2   11    3
[2,]    1    2    4
[3,]   55   65   12
[4,]    4    6    6
[5,]    7    9    3
[6,]   23   16   77
[7,]    5    5    7

我想添加一个带有行索引的列。该索引将从 1 开始并重复相同的索引,直到它到达 rowsums > 100 的行以移动到下一个值。
  Indx[,2][,3][,4]
[1,] 1  2 11  3
[2,] 1  1  2  4
[3,] 2 55 65 12
[4,] 3  4  6  6
[5,] 3  7  9  3
[6,] 4 23 16 77
[7,] 5  5  5  7

最佳答案

使用 rle:

matRle <- rle(rowSums(mat) > 100)$lengths

cbind(rep(seq(length(matRle)), matRle), mat)
#      [,1] [,2] [,3] [,4]
# [1,]    1    2   11    3
# [2,]    1    1    2    4
# [3,]    2   55   65   12
# [4,]    3    4    6    6
# [5,]    3    7    9    3
# [6,]    4   23   16   77
# [7,]    5    5    5    7

关于r - 创建矩阵行索引,当 rowsum > 100 时递增,随后行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51866766/

相关文章:

按组用第一个观察值替换所有值

r - 如何在 knitr 文档中设置图形参数 (par()) 和结构选项 (strOptions())?

r - 如何cbind在R中的循环中生成的列

c - 如何移动最大数量的矩阵

MySQL 连接查询性能问题

indexing - 为什么 Google(或 Googlebot)会索引一个返回 500 错误的页面?

r - 如何完全通用地在 R 中的 data.table 中使用变量中的列名

graph - lisp 中的邻接矩阵/Floyd/Warshall

java - 读取 double 矩阵的有效方法

ruby-on-rails - 使用 Thinking Sphinx 定义关联模型的索引