如果我理解正确,OP 只想保留矩阵 m 的某些行。
这种方法不是创建行的索引以选择,而是创建行的负索引以从选择中排除。 p>
在 OP 的示例中,不需要的行是 1:6, 23:29, 46:52, ...。
# create minimal, reproducible example
m <- matrix(rep(1:70, 2L), ncol = 2L)
# leave out unwanted rows
m_all <- m[-outer(seq(0L, NROW(m), by = 23L), 0:6, `+`), 1:2]
m_all
[,1] [,2]
[1,] 7 7
[2,] 8 8
[3,] 9 9
[4,] 10 10
[5,] 11 11
[6,] 12 12
[7,] 13 13
[8,] 14 14
[9,] 15 15
[10,] 16 16
[11,] 17 17
[12,] 18 18
[13,] 19 19
[14,] 20 20
[15,] 21 21
[16,] 22 22
[17,] 30 30
[18,] 31 31
[19,] 32 32
[20,] 33 33
[21,] 34 34
[22,] 35 35
[23,] 36 36
[24,] 37 37
[25,] 38 38
[26,] 39 39
[27,] 40 40
[28,] 41 41
[29,] 42 42
[30,] 43 43
[31,] 44 44
[32,] 45 45
[33,] 53 53
[34,] 54 54
[35,] 55 55
[36,] 56 56
[37,] 57 57
[38,] 58 58
[39,] 59 59
[40,] 60 60
[41,] 61 61
[42,] 62 62
[43,] 63 63
[44,] 64 64
[45,] 65 65
[46,] 66 66
[47,] 67 67
[48,] 68 68
索引的嵌套序列由
创建
outer(seq(0L, NROW(m), by = 23L), 0:6, `+`)
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 0 1 2 3 4 5 6
[2,] 23 24 25 26 27 28 29
[3,] 46 47 48 49 50 51 52
[4,] 69 70 71 72 73 74 75