Как преобразовать фрейм данных в матрицу в R (с примерами)


Вы можете использовать один из следующих методов для преобразования фрейма данных в матрицу в R:

Метод 1: преобразование фрейма данных числовых столбцов в матрицу

mat <- as.matrix(df)

Метод 2: преобразование фрейма данных с символами/факторами в матрицу

mat <- data.matrix(df)

Обратите внимание, что оба метода используют функции из базы R, поэтому вам не нужно устанавливать какие-либо внешние пакеты для использования этих методов.

В следующих примерах показано, как использовать каждый метод на практике.

Метод 1: преобразование фрейма данных числовых столбцов в матрицу

Предположим, у нас есть следующий фрейм данных в R, который содержит только числовые столбцы:

#create data frame
df <- data.frame(points=c(99, 90, 86, 88, 95),
 assists=c(33, 28, 31, 39, 34),
 rebounds=c(30, 28, 24, 24, 28))

#view data frame
df

 points assists rebounds
1 99 33 30
2 90 28 28
3 86 31 24
4 88 39 24
5 95 34 28

Мы можем использовать функцию as.matrix() для быстрого преобразования этого фрейма данных в числовую матрицу:

#convert data frame to matrix
mat <- as.matrix(df)

#view matrix
mat

 points assists rebounds
[1,] 99 33 30
[2,] 90 28 28
[3,] 86 31 24
[4,] 88 39 24
[5,] 95 34 28

#view class of mat
class(mat)

[1] "matrix" "array"

С помощью функции class() мы подтверждаем, что новый объект действительно является матрицей.

Метод 2: преобразование фрейма данных с символами/факторами в матрицу

Предположим, у нас есть следующий фрейм данных в R, который содержит как символьные, так и числовые столбцы:

#create data frame
df <- data.frame(team=c('A', 'A', 'B', 'B', 'C'),
 points=c(99, 90, 86, 88, 95),
 assists=c(33, 28, 31, 39, 34))

#view data frame
df

 team points assists
1 A 99 33
2 A 90 28
3 B 86 31
4 B 88 39
5 C 95 34

Мы можем использовать функцию data.matrix() , чтобы быстро преобразовать этот фрейм данных в числовую матрицу:

#convert data frame to matrix
mat <- data.matrix(df)

#view matrix
mat

 team points assists
[1,] 1 99 33
[2,] 1 90 28
[3,] 2 86 31
[4,] 2 88 39
[5,] 3 95 34

#view class of mat
class(mat)

[1] "matrix" "array"

С помощью функции class() мы подтверждаем, что новый объект действительно является матрицей.

Мы также можем ввести следующее:

?data.matrix

Что говорит нам:

Description:
 Return the matrix obtained by converting all the variables in a
 data frame to numeric mode and then binding them together as the
 columns of a matrix. Factors and ordered factors are replaced by
 their internal codes.

Это объясняет, почему названия команд A, A, B, B, C были преобразованы в значения 1, 1, 2, 2, 3.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в R:

Как преобразовать столбец фрейма данных в вектор в R
Как преобразовать матрицу в вектор в R
Как преобразовать таблицу во фрейм данных в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.