R разрезать один ряд на несколько рядов одинаковой длины - PullRequest
1 голос
/ 21 февраля 2012

Я пытаюсь разрезать одну строку

x = [1 2 3 4 5 6 7 8 9 10 11 12]

на несколько строк одинаковой длины, чтобы

y (строка 1) = [1 2 3 4

y (строка 2) = 5 6 7 8

y (строка 3) = 9 10 11 12]

IЯ знаю, что могу достичь этого, используя комбинацию rbind и cbind, но набор данных, к которому я пытаюсь применить это, намного больше, чем пример, поэтому я ищу способ сделать это быстрее и автоматически.Я пробовал Cut and Cut2, но они не работали либо

jelle

Ответы [ 2 ]

5 голосов
/ 21 февраля 2012

Функция matrix() ваш друг здесь:

> matrix(1:12, nrow = 3, byrow = TRUE)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12

Обратите внимание на необязательный параметр, byrow. По умолчанию FALSE и заполнит матрицу столбцами, установив ее в true, в этом случае данные будут упорядочены в порядке, который вы описали. Просто нужно быть осторожным, так как R не выдаст ошибку, если вы заполните столбцом , но ваши данные не будут в правильном формате!

3 голосов
/ 21 февраля 2012

Использовать matrix:

> y <- 1:12
> y
 [1]  1  2  3  4  5  6  7  8  9 10 11 12
> matrix(y,3,4,byrow=1)
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12

Редактировать: Я включил аргумент byrow=TRUE в matrix (на что указывает Чейз в комментариях), который заполняет матрицу вдоль строк вместо вниз столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...