Como criar matrizes em R

Como criar matrizes em R

Na lição anterior definimos o que é uma matriz em R, quais suas aplicações e como endereçar seus elementos. Agora iremos mostrar como é possível criar matrizes utilizando três funções bastante comuns em linguagem R: matrix(), rbind() e cbind().

Função matrix()

Toma um vetor e o transforma em matriz, dividindo os dados presentes no vetor em várias linhas da matriz.

Sintaxe:

matrix(data = NA, nrow = x, ncol = y, byrow = TRUE | T | F | FALSE)

Onde:

  • data é a fonte dos dados (por exemplo, um vetor)
  • nrow é o número de linhas desejadas
  • ncol é o número de colunas desejadas
  • byrow indica se a matriz será preenchida por linhas ou colunas. O padrão é F ou FALSE (por colunas).

Função rbind()

Conecta vetores formando linhas de uma matriz com cada vetor (r = row)

Sintaxe:

rbind(vetor1, vetor2, ..., vetorN)

Função cbind()

Conecta vetores formando colunas de uma matriz com cada vetor (c = column)

Sintaxe:

cbind(vetor1, vetor2, ..., vetorN)

Exemplos

1 – Criar um vetor com a função matrix()

Iniciamos criando um vetor com, digamos, 20 posições preenchidas com números:

> vetor <- 1:20

Agora vamos transformar esse vetor em uma matriz A 4×5 (quatro linhas por cinco colunas) da seguinte forma:

> A <- matrix(vetor, 4, 5)

E então verificamos o conteúdo da matriz criada:

> A

Criar matriz em linguagem R

Note os índices indicados para as linhas e colunas da matriz criada.

É importante que o produto do número de linhas pelo número de colunas seja igual ao número total de itens do vetor, para que a matriz possa ser corretamente criada e preenchida. Em nosso caso, 4 linhas x 5 colunas = 20 itens, que é o tamanho do vetor.

E como acessamos o valor armazenado em uma posição da matriz? É simples: basta usar o nome da matriz, seguida de colchetes contendo o número da linha e da coluna separados por vírgulas, nessa ordem. Por exemplo, vamos acessar o elemento que está na linha 3, coluna 4 (número 15):

> A[3,4]
[1] 15

2 – Vamos agora criar uma matriz usando a função rbind()

Começamos criando, por exemplo, três vetores de caracteres, como segue:

> v1 <- c("SP","RJ","MG")
> v2 <- c("RN","MT","AM")
> v3 <- c("PE","RS","SC")

E então criamos uma matriz B unindo os três vetores criados coma função rbind():

> B <- rbind(v1, v2, v3)

E então verificamos o conteúdo da matriz:

> B

Criando uma matriz com rbind() em linguagem R

Note que são mostrados os nomes dos vetores v1, v2 e v3 nas linhas do vetor criado. Porém, para acessar uma de suas posições, basta referenciá-las normalmente pelos números de linha e coluna, como por exemplo:

> B[3,3]
     v3
[1] "SC"

Também podemos acessar o elemento fornecendo o nome do vetor que originou a linha, em vez do número da linha em si:

> B["v3",3]
      v3
[1] "SC"

3 – E por fim vamos criar uma matriz usando a função cbind().

Primeiramente vamos criar três vetores numéricos, com 6 elementos em cada, como segue:

> n1 <- 1:6
> n2 <- 12:17
> n3 <- 24:29

E então criamos a matriz C unindo os três vetores criados com a função cbind():

> C <- cbind(n1, n2, n3)

Finalmente, verificamos o conteúdo da matriz:

C

Criar uma matriz com a função cbind() em R

Note que os elementos são arranjados em colunas, em vez de linhas, como ocorreu com a função rbind(). E perceba também que, em vez de serem mostrados os números de índice das colunas, são mostrados os nomes dos vetores empregados. Porém, o processo de acesso aos elementos da matriz é o mesmo: basta indicar entre os colchetes os números da linha e da coluna desejados:

C[4,3]
n3
[1] 27

Ou ainda usar o nome da coluna:

C[4,"n3"]
n3
27

É isso aí! Na próxima lição vamos nos aprofundar na manipulação dos elementos de uma matriz, incluindo a atribuição, leitura e alteração dos elementos.

 

Sobre Fábio dos Reis (1317 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*