Matrizes em R

Diferentes dos vetores que possuem dimensão igual a 1 (embutidos e implícito), as matrizes possuem o atributo dimensão (dim) maior ou igual a 2. Para a criação de uma matriz, é necessários que todos os seus elementos sejam do mesmo tipo.

Para a criação de uma matriz 2 x 2 (2 linas por 2 colunas), podemos executar o comando abaixo:

> matriz <- matrix(nrow = 2, ncol = 2); matriz
     [,1] [,2]
[1,]   NA   NA
[2,]   NA   NA

Como não foi especificado nenhum valor na criação da matriz, ela foi criada vazia. Podemos reparar que na criação da matriz, as posições são compostas por [linha,coluna], portanto, logo na primeira linha de cabeçalho da matriz, ele está indicando que a linha (vazia) e o número da coluna depois da virgula. Exemplo: [,1] [,2]. O mesmo acontece logo ao lado esquerdo, no indicador de linha da matriz, sendo mostrado como [1,] e [2,].

Para saber o tamanho das dimensões de uma matriz, é possível saber com o seguinte comando:

 > dim(matriz)
[1] 2 2

Ou

> attributes(matriz)
$dim
[1] 2 2

Ainda na criação da matriz, é possível iniciar com valores pré-definidos

> matriz2  matriz2
     [,1] [,2] [,3] [,4]
[1,]    5    5    5    5
[2,]    5    5    5    5
[3,]    5    5    5    5

Ou podemos tentar colocar colocar valores diferente para linhas

> matriz3 <- matrix(data = 1:3, nrow = 3, ncol = 4); matriz3

 
    [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    2    2    2    2
[3,]    3    3    3    3

Há casos em que as faixas de números iniciaos não irão bater com a quantidade de elementros da matriz. O R tentará preencher com o que for possível, apresentando um aviso:

 
> matriz4 <- matrix(data = 1:5, nrow = 3, ncol = 4); matriz4
Warning message:
In matrix(data = 1:5, nrow = 3, ncol = 4) :
  data length [5] is not a sub-multiple or multiple of the number of rows [3]
     [,1] [,2] [,3] [,4]
[1,]    1    4    2    5
[2,]    2    5    3    1
[3,]    3    1    4    2

Outro exemplo onde a faixa de valores bate com a quantidade de elementos da matriz. Podemos observar que o preenchimento dos valores é feito coluna a coluna.

 
> matriz5 <- matrix(data = 1:12, nrow = 3, ncol = 4); matriz5
     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12

É possível fazer com que o preenchimentos de valores de uma matriz seja feita linha a linha:

 
> matriz6 <- matrix(data = 1:12, nrow = 3, ncol = 4, byrow = TRUE) 
> matriz6
     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12

Outra possibilidade de criar matriz é através de outros vetores, adicionando o atributo dim:

Criando a matriz7, ainda é um vetor de 10 posições.

> matriz7 <- 1:10; matriz7
 [1]  1  2  3  4  5  6  7  8  9 10

Agora, estamos alterando a propriedade dim da matriz7 para que ela tenha 2 linhas por 5 colunas:

> dim(matriz7) <- c(2,5); matriz7
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10

 

Matrizes de 3 dimensões

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s