Como converter tabela em matriz em r (com exemplo)


Você pode usar a seguinte sintaxe básica para converter uma tabela em uma matriz em R:

 my_matrix <- matrix(my_table, ncol=ncol(my_table), dimnames=dimnames(my_table))

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: Converter Array em Matriz em R

Primeiro, vamos criar o seguinte quadro de dados em R que mostra o time e a posição dos diferentes jogadores de basquete:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'C', 'G', 'F', 'C', 'C'))

#view data frame
df

  team position
1 AG
2 AG
3 AF
4 AC
5 BG
6 BF
7 BC
8 BC

A seguir, vamos criar uma tabela que exiba a frequência de cada combinação de equipe e posição :

 #create frequency table of values for team and position
my_table <- table(df$team, df$position)

#view table
my_table

    CFG
  A 1 1 2
  B 2 1 1

Podemos usar a função class() para confirmar se o objeto chamado my_table é de fato uma tabela:

 #display class of my_table
class(my_table)

[1] “table”

Então podemos usar a seguinte sintaxe para converter o array em uma matriz:

 #convert table to matrix
my_matrix <- matrix(my_table, ncol=ncol(my_table), dimnames=dimnames(my_table))

#view matrix
my_matrix

    CFG
  A 1 1 2
  B 2 1 1

E podemos usar a função class() para confirmar se o objeto chamado my_matrix é de fato uma matriz:

 #display class of my_matrix
class(my_matrix)

[1] "matrix" "array"

Nota nº 1 : O argumento ncol garante que o número de colunas na matriz corresponda ao número de colunas na tabela.

Nota nº 2 : O argumento dimnames garante que os nomes das linhas e colunas correspondam aos da tabela.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em R:

Como converter uma tabela em um quadro de dados em R
Como converter matriz em vetor em R
Como converter uma lista em uma matriz em R
Como converter coluna de quadro de dados em vetor em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *