Как превратить вектор в матрицу в R?
У меня есть вектор с 49 числовыми значениями. Вместо этого я хочу иметь цифровую матрицу 7x7.
Есть ли какая-то удобная инструкция автоматического преобразования, которую я могу использовать, или мне нужно сделать 7 отдельных назначений столбцов правильных векторных подмножеств для новой матрицы? Я надеюсь, что есть что-то вроде oposite c(myMatrix)
, с возможностью дать количество строк и/или столбцов, которые я хочу иметь, конечно.
Ответы
Ответ 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