Сплит матрицы в R - PullRequest
       3

Сплит матрицы в R

0 голосов
/ 18 декабря 2018

Я пытаюсь разбить матрицу по строкам, но не знаю, как это сделать.Например, если у меня есть матрица NxM, но я хочу разделить матрицу так, чтобы я получил n (N / n) xM матриц, как бы я это сделал?

Так что, если бы у меня была матрица X:

      [,1] [,2]
 [1,]    1   21
 [2,]    2   22
 [3,]    3   23
 [4,]    4   24
 [5,]    5   25
 [6,]    6   26
 [7,]    7   27
 [8,]    8   28
 [9,]    9   29
[10,]   10   30
[11,]   11   31
[12,]   12   32
[13,]   13   33
[14,]   14   34
[15,]   15   35
[16,]   16   36
[17,]   17   37
[18,]   18   38
[19,]   19   39
[20,]   20   40`

Выход функционального блока (X, n), если n = 2, будет

[[1]]

       [,1] [,2]
 [1,]    1   21
 [2,]    2   22
 [3,]    3   23
 [4,]    4   24
 [5,]    5   25
 [6,]    6   26
 [7,]    7   27
 [8,]    8   28
 [9,]    9   29
[10,]   10   30

[[2]]

       [,1] [,2]
 [1,]   11   31
 [2,]   12   32
 [3,]   13   33
 [4,]   14   34
 [5,]   15   35
 [6,]   16   36
 [7,]   17   37
 [8,]   18   38
 [9,]   19   39
[10,]   20   40

Спасибо за любую помощь заранее!

1 Ответ

0 голосов
/ 18 декабря 2018

Мы создаем столбец группировки для разделения

n <- 10
grp <- (seq_len(nrow(X)) - 1) %/% n + 1
split(as.data.frame(X), grp)

Или используем индекс для подстановки строк

lapply(seq(1, nrow(X), by =  n), function(i) X[i:(i+n -1), ])

data

X <- matrix(1:40, ncol = 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...