top of page
Buscar
  • Foto do escritorRodolfo R. Terra

Matriz - Linguagem R

Olá Pessoal. Este blog tem como objetivo passar conhecimentos básicos sobre a linguagem R e auxiliar as pessoas iniciantes, que queira conhecer a ferramenta. Cada semana teremos um assunto diferente.

Semana passada falamos sobre vetores e hoje iremos conhecer o que é Matriz dentro da linguagem R e as suas principais funções.


Definição:

Matrizes é caracterizado como uma coleção de vetores, sendo todos do mesmo tipo (numérico ou caracteres) armazenados entre linhas e colunas.

Uma submatriz dentro da linguagem R, é identificada através de “[,]”,sendo primeiramente as linhas e depois as colunas "[linhas, colunas]", com os exemplo este entendimento ficará mais fácil.

Ao criar uma matriz dentro da linguagem R, utilizamos o mesmo conceito de vetor c(1, 2, ... ,n), porém para realizar uma matriz basta utilizar a função matrix() e o parâmetro nr para identificar a quantidade de linhas. Lembrando que a quantidade de linhas tem que ser proporcional a quantidade de elementos dentro do vetor.

Vamos ver alguns exemplos:

Exemplo 1:

  • Matrix com duas linhas;


  • Matrix com três linhas;


  • Matrix com seis linhas;


Podemos observar que a sequencia dos elementos foi distribuídos pela linha, nos exemplos anteriores.

1º elemento – Primeira linha da primeira coluna;

2ª elemento – Segunda linha da primeira coluna;

3º elementoNo primeiro exemplo foi para a primeira linha da segunda coluna;

No segundo e terceiro exemplo manteve na primeira coluna;

E assim com todos os outros elementos da matriz.


Quando não existir mais linhas, o próprio RStudio coloca o próximo elemento na primeira linha da próxima coluna, até finalizar os elementos.

Ao invés de identificar a quantidade de linhas com o parâmetro nr podemos identificar a quantidade de colunas com o parâmetro nc.


Mesmo identificando a quantidade de coluna ou a quantidade de linhas, todos os elementos anteriores foram colorados em sequencia de linha, ou seja o primeiro elemento na primeira linha, se existir outras linhas na matriz, o segundo elemento iria para a próxima linha.

Podemos inverter esta ordem se quisermos que os elementos sejam colocado em ordem de colunas, utilizando o parâmetro “byrow = T”.


OBS: A query anterior está com parâmetro mais do que o necessário, pois identificamos a quantidade de colunas, ncol=2, e anteriormente identificamos a quantidade de linhas com, 5, mesmo não colocando o parâmetro o RStudio consegui entendeu que o 5, significa nr=5.


Quantidade de Elemento de uma matriz


A função lenght() nos dá a quantidade de elemento dentro de uma matriz



Estes seis elementos estão distribuídos em 02 linhas e 03 colunas. A função dim() nos mostra a dimensão de uma matriz, começando pela quantidade de linhas, e depois pela quantidade de colunas.



Podemos obter apenas a quantidade de linhas pela função rnow().



Para obter a quantidade de colunas utilizamos a função ncol()



Fatiamento de matriz


Podemos realizar o fatiamento da matriz chamando o index da linha e o index da coluna, com a função "nome_da_matriz[linha,coluna]".

Temos a matriz 2x3 e os seguintes exemplo:

mat[1,2] - Primeira linha da segunda coluna.


> mat      [,1] [,2] [,3] [1,]        4    [2,]           


mat[2,2] - Segunda linha da segunda coluna.

> mat      [,1] [,2] [,3] [1,]    [2,]        5   


mat[1,3] - Primeira linha da Terceira coluna.


> mat      [,1] [,2] [,3] [1,]        6 [2,] 


Nos dois exemplos anteriores temos toda a colunas ou toda a linha.


mat[,1] – Não coloco nada antes da“,” e identificar a coluna que quereremos.

> mat      [,1] [,2] [,3] [1,]    2        [2,]    3   


O mesmo ocorre com o entendimento de linha inteira, porém para chamar toda a linha basta colocar o ante da "," o indexador da linha que queremos e não colocar nada após a ",".


Matriz Diagonal


Para criar uma matriz diagonal utilizamos a função diag()


Podemos extrair o vetor da matriz anterior criado



Transposta da matriz

Esta operação que veremos agora também recebe o nome de PIVOT, ou transposta da matriz, utilizada constantemente na modelagem de dados.

A função t(), nos dá a matriz transposta, o que coluna passa a ser linha e o que é linha passar a ser coluna.

Matriz Inversa


Para conseguir a matriz inversa utilizamos a função solve().

Caso você já conheça como chegar no resultado da matriz inversa, poderá seguir para o próximo item, mas iremos fugir um pouco do objetivo da linguagem R e abaixo iremos relembrar os conceitos rapadamente visto no colegial de como chegar em uma matriz inversa.


Relembrando a matriz que iremos encontrar a inversa, matriz w

     [,1] [,2] [1,]    2    8 [2,]    4    12


Primeiramente precisamos saber o que é uma matriz identidade de nosso exemplo. Para obtermos uma matriz inversa, é preciso que a matriz seja quadrada, ou seja quantidade de linhas igual a quantidade de colunas.

dim(w) [1] 2 2 


Uma matriz identidade é composta por números 0 e 1, sendo o número 01 preenchido em sua diagonal. A matriz identidade de uma matriz de dimensão 2x2 é dada.


     [,1] [,2] I =  [1,]    1    0       [2,]      0     1


A matriz inversa multiplicado pela matriz é igual a matriz identidade:



Ao resolver estas equações temos a matriz identidade solve(w) abaixo:


     [,1] [,2] [,1] [,2]

Inversa =  [1,]    a    b = [1,]    -1.5    1.00

      [2,]      c     d  [2,]    0.5 0.25


Multiplicação de Matriz:

Podemos fazer soma, adição, multiplicação e divisão com matriz conforme o exemplo abaixo, com a criação de 02 novas matrizes.



Multiplicação de Matriz com vetor:

Podemos multiplica uma matriz por um vetor:



Nomeando a matriz

Podemos nomear as coluna e linhas da matriz



Combinação de Matrizes a matriz

Podemos juntar duas matrizes, por colunas usando a função cbind(), ou a junção por linhas rbind().



Transformar a matriz em Vetor

Podemos transforma a matriz em um vetor utilizando a função c()



O blog dessa semana vai ficando por aqui, mas não percam a próxima semana, pois falaremos sobre Data Frame, seu conceito e como se trabalhar com o RStudio.

Espero que tenha conseguindo passar de maneira simples sobre Matriz, mas caso tenha ficado alguma dúvida, por favor publique ou me envie um e-mail, para que eu possa tirar as dúvidas.

O blog aqui tem como objetivo passar informações de forma bem simples alguns conceitos importantes. Tenho como propósito poder ajudar, desenvolvendo material de maneira mais claro possível.

Sugestões, críticas ou dúvidas, entre em contato.

_________________________________________________________________________


223 visualizações0 comentário

Posts recentes

Ver tudo

Comments


Post: Blog2_Post
bottom of page