Подтвердить что ты не робот

Как превратить вектор в матрицу в R?

У меня есть вектор с 49 числовыми значениями. Вместо этого я хочу иметь цифровую матрицу 7x7.

Есть ли какая-то удобная инструкция автоматического преобразования, которую я могу использовать, или мне нужно сделать 7 отдельных назначений столбцов правильных векторных подмножеств для новой матрицы? Я надеюсь, что есть что-то вроде oposite c(myMatrix), с возможностью дать количество строк и/или столбцов, которые я хочу иметь, конечно.

4b9b3361

Ответ 1

Просто используйте matrix:

matrix(vec,nrow = 7,ncol = 7)

Одно из преимуществ использования matrix вместо простого изменения атрибута измерения, как указывает Гэвин, заключается в том, что вы можете указать, заполняется ли матрица строкой или столбцом, используя аргумент byrow в matrix.

Ответ 2

Матрица - это просто вектор с атрибутом dim (для размеров). Таким образом, вы можете добавлять размеры к vec с помощью функции dim(), а vec будет представлять собой матрицу:

vec <- 1:49
dim(vec) <- c(7, 7)  ## (rows, cols)
vec

> vec <- 1:49
> dim(vec) <- c(7, 7)  ## (rows, cols)
> vec
     [,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,]    1    8   15   22   29   36   43
[2,]    2    9   16   23   30   37   44
[3,]    3   10   17   24   31   38   45
[4,]    4   11   18   25   32   39   46
[5,]    5   12   19   26   33   40   47
[6,]    6   13   20   27   34   41   48
[7,]    7   14   21   28   35   42   49