Buscar

6cc6f1e5-e777-4c4d-8ebb-2044ee4181f1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROGRAMAÇÃO EM 
BIG DATA COM R
OBJETIVOS DE APRENDIZAGEM
 > Descrever os métodos definidos para matrizes em R.
 > Identificar a utilização das operações e dos métodos em matrizes em R.
 > Explicar a utilização de matrizes, bem como os seus métodos, em problemas 
computacionais.
Introdução
Uma matriz é um sistema formado por linhas e colunas e muito utilizado em diver-
sas áreas, como física, engenharia, biologia, etc. Na computação, temos diversos 
exemplos de aplicação do conceito de matrizes, como no processo de criptografar 
e descriptografar mensagens enviadas por e-mail ou no posicionamento dos pixels 
na tela de um computador. A linguagem R possui alguns recursos para criação 
de matrizes, bem como recursos para fazer operações com as matrizes criadas e 
aplicá-las em problemas computacionais. 
Neste capítulo, você vai se familiarizar com conceitos fundamentais de métodos 
definidos para matrizes em R, conhecendo a utilização prática das operações.
Operações e 
métodos de 
matrizes em R
Paulo Sergio Padua de Lacerda
Matrizes
Matrizes são estruturas matemáticas organizadas em forma de tabelas, com 
linhas e colunas. Uma matriz tem a fi nalidade de organizar dados ou informa-
ções. Por curiosidade, o primeiro nome dado a uma matriz foi tableau (tabela), 
em 1826, pelo matemático francês Augustin-Louis Cauchy. Entretanto, o nome 
matriz surgiu em 1850, criado pelo matemático britânico Arthur Cayley, no 
artigo “A memoir on the theory of matrices”, publicado no periódico Philoso-
phical Transactions of the Royal Society of London em 1858 (BASTOS, 2017). 
Há diversos tipos de matriz, que variam dependendo de como as informa-
ções estão organizadas. Podemos ter, por exemplo, matriz em linha, coluna, 
nula ou quadrada. A Figura 1 ilustra esses tipos de matriz. 
Figura 1. Tipos de matrizes.
Note que os elementos na Figura 1 são do mesmo tipo, ou seja, números 
inteiros, mas podem ser formados, na matemática, por elementos de tipos 
diferentes. Além desses tipos, há outros tipos que classificam também uma 
matriz, como no caso da matriz transposta. Um matriz formada por linhas 
e colunas é chamada de transposta quando se pode representar a mesma 
matriz, mas as linhas se transformam em colunas e as colunas em linhas, 
conforme a Figura 2.
Operações e métodos de matrizes em R2
Figura 2. Exemplo de matriz transposta.
Já a chamada matriz oposta ocorre quando a matriz B possui os mes-
mos elementos da matriz A, mas seus sinais são opostos, como ilustra 
a Figura 3.
Figura 3. Exemplo de matriz oposta.
Há ainda outros tipos de classificação de matrizes, como a matriz iden-
tidade. Essa matriz é criada quando os termos da diagonal de uma matriz 
são iguais ao valor 1, sendo os demais termos iguais a zero. Por sua vez, 
uma matriz inversa é uma matriz de ordem quadrada em que o resultado 
de duas matrizes formam uma terceira matriz identidade de mesma ordem 
(BASTOS, 2017).
A ordem de uma matriz faz referência ao número de linhas e ao 
número de colunas. Sua representação é dada por linhas × colunas ( 
n × m), sendo n o número de linhas e m o número de colunas, como, por exemplo, 
2 × 3, 1 × 4, 5 × 6. Uma matriz de ordem quadrada possui a mesma quantidade 
de linhas e colunas ( 2 × 2, 3 × 3, 4 × 4). 
A Figura 4 ilustra um exemplo de matriz identidade, seguido de outro 
exemplo de uma matriz inversa. Note que no exemplo, a matriz resultante 
da matriz inversa (A × B = B × A = In) é exatamente uma matriz identidade de 
mesma ordem de A e B.
Operações e métodos de matrizes em R 3
Figura 4. Matriz identidade e matriz inversa.
Repare na Figura 4 que a matriz inversa de A é A-1 e a operação de A × A-1 
gera uma matriz identidade. Por sua vez, se você fizer a operação inversa 
de A-1 × A, o resultado será a mesma matriz identidade da mesma ordem. 
Acessando os valores de uma matriz
Como já vimos, uma matriz é representada pela quantidade de colunas 
e linhas. Segundo a nomenclatura, uma matriz M2,2, por exemplo, é uma 
matriz de 2 linhas e 2 colunas. Porém, como acessar os valores da matriz? 
Os valores de uma matriz podem ser acessados determinando-se o nú-
mero da linha e da coluna do referido valor. Veja a matriz da Figura 5. Essa 
matriz é uma matriz de ordem 5 × 4 e possui diversos dados posicionados 
em linhas e colunas. 
Figura 5. Matriz de ordem 5 × 4.
Observe na Figura 5 que os valores estão compreendidos entre 1 e 20. 
Caso você queira acessar o valor 10, por exemplo, precisa especificar a matriz 
M[linha, coluna]. Supondo a matriz da Figura 5, então o valor 10 seria acessado 
Operações e métodos de matrizes em R4
via M[3,2], ou seja, está posicionado na linha 3 e na coluna 2 dentro da matriz 
M. Outros valores podem ser acessados seguindo a mesma lógica, como 
M[5,4] = 20 ou M[1,1] = 1.
Criação de matrizes em R
A linguagem R possui uma função para criação de matriz, a função ma-
trix() (WICKHAM, 2019). A concepção da linguagem para a criação de 
uma matriz segue os mesmo princípios da matemática, ou seja, indexa 
os componentes pelas linhas e colunas. Entretanto, ao contrário da ma-
temática, em R os valores pertencem à mesma classe, não podendo, por 
exemplo, ter elementos de classe diferente. Observe na Figura 6 que a 
estrutura genérica da matriz formada em R segue os mesmos moldes que 
aqueles da matemática. 
Figura 6. Estrutura genérica de matriz em R.
A função matrix() pertence ao pacote base do R e possui a seguinte 
sintaxe: matrix(data = NA, nrow = 1, ncol = 1, byrow 
= FALSE, dimnames = NULL), sendo que:
  data = NA — um vetor de comprimento igual ao número de células dese-
jadas, que é nrow*ncol;
  byrow = FALSE — a forma de preenchimento da planilha pelos dados em 
data; se byrow=TRUE, preenche pelas linhas, senão pelas colunas;
  nrow — número de linhas;
  ncol — número de colunas;
  dimnames — um objeto do tipo lista para a criação da matriz com dois vetores, 
um com os nomes das linhas, outro com os nomes das colunas.
Operações e métodos de matrizes em R 5
Agora, vamos a alguns exemplos de criação de matriz em R. Nosso primeiro 
exemplo mostra a criação de uma matriz usando a função diretamente, mas 
atribuindo valor zero a todos os valores da matriz. Observe que se trata de 
uma matriz nula e quadrada, pois as linhas e colunas são iguais, mas seus 
conteúdos de valor são zero (Figura 7).
Figura 7. Criação de uma matriz em R.
Repare na Figura 7 que o conjunto de dados foi especificado como 
zero (data=0) e a quantidade de colunas e a quantidade de linhas são 
iguais (2,2). Agora vamos demonstrar mais dois exemplos. No exemplo 
A, foi criada uma sequência de números de 1 a 15 (seq=1,15) e posicio-
nados na matriz. Já no exemplo B, definimos o argumento byrow=TRUE 
para preenchermos primeiramente as linhas e depois as colunas. Veja o 
resultado na Figura 8. 
Operações e métodos de matrizes em R6
Figura 8. Criação de uma matriz em R com a função seq.
A Figura 9 mostra três outros exemplos de criação de uma matriz. No pri-
meiro exemplo, a matriz é criada a partir de um vetor de números inteiros. Já 
no segundo exemplo, a matriz é preenchida com valores character. Por fim, no 
terceiro exemplo, a matriz é preenchida por uma lista definida previamente. 
Operações e métodos de matrizes em R 7
Figura 9. Outras formas de criar matriz em R
Observe no exemplo 3 da Figura 9 que o argumento dimnames = 
list(colunas, linhas) foi utilizado com base em duas listas, uma para 
determinar o cabeçalho de colunas e a outra para o cabeçalho de linha. 
Por fim, você pode criar matrizes em R utilizando as funções cbind() e 
rbind(), que fazem a ligação via coluna e linha, respectivamente (WICKHAM; 
GROLEMUND, 2019). Veja os exemplos da Figura 10.
Operações e métodos de matrizes em R8
Figura 10. Usando cbind() e rbind().
O acesso aos dados de uma matriz em R segue os princípios da matemá-
tica, ou seja, é determinado pelo nome da matriz, pelo número da coluna e 
pelo número da linha. Veja alguns exemplos de acesso aos valores de uma 
matrizna Figura 11. 
Operações e métodos de matrizes em R 9
Figura 11. Acessando os valores de uma matriz.
No primeiro exemplo da Figura 11, os valores são acessados diretamente 
pelo seu posicionamento na matriz; porém, no segundo exemplo os valores 
de colunas e linhas são ocultados, respectivamente. Sendo assim, o R lê 
todas as colunas da matriz matriz[c(1,1), ] no primeiro comando do 
exemplo 2 e toda a linha na segunda função matriz[ , c(1,1)] (DE VRIES; 
MEYS, 2015). 
No entanto, a linguagem R propicia muito mais do que simplesmente a 
criação de matrizes, pois permite também que operações possam ser exe-
cutadas nas matrizes criadas, tema central do próximo tópico. 
Operações e métodos de matrizes em R10
Operações com matrizes
A linguagem R, além de permitir a criação de estruturas matriciais, também 
permite que os usuários façam operações com matriz. Vejamos então algumas 
operações que podem ser realizadas com matrizes. 
Inicialmente, vamos fazer uma soma de matriz. Uma operação de adição 
envolvendo matrizes tem que respeitar condições: primeiro todas as matrizes 
devem ser de mesma ordem, e o resultado deve ser uma matriz de mesma 
ordem que as matrizes envolvidas na adição (KABACOFF, 2015). A operação é 
feita pela soma dos elementos de cada posição da matriz, um a um. Na soma 
das matrizes A[2,2] e B [2,2], por exemplo, a operação se daria por elemento 
A[1,1] + B[1,1] = C[1,1], ou seja, o primeiro elemento da matriz resultante C será 
o resultado da soma dos elementos A[1,1] e B[1,1]. Vamos então representar 
a soma em R. A Figura 12 ilustra a operação de adição de matrizes. 
Figura 12. Soma de matrizes.
Operações e métodos de matrizes em R 11
Observe pela Figura 12 que o R respeita as mesmas regras da matemática. 
No próximo exemplo, vamos subtrair a matriz A da matriz B, como ilustra a 
Figura 13.
Figura 13. Subtração de matrizes.
Veja que o resultado foi uma matriz nula, pois os dados das matrizes A e 
B são idênticos entre si. 
Neste ponto, passamos à operação de multiplicação. Uma multiplicação 
escalar é quando temos uma matriz de dimensão qualquer que é toda mul-
tiplicada por um escalar k (WICKHAM; GROLEMUND, 2019). O resultado dessa 
multiplicação será uma nova matriz de mesma dimensão, mas com cada um 
de seus elementos multiplicados pelo escalar k. Veja no exemplo da Figura 
14 a matriz sendo multiplicada por escalar 2. 
Operações e métodos de matrizes em R12
Figura 14. Multiplicação escalar de uma matriz.
A multiplicação entre elementos resulta em uma matriz de mesma dimen-
são, mas com os elementos resultantes da multiplicação de cada posição da 
matriz. Há equivalência com a adição e a subtração, ou seja, as matriz devem 
ter as mesmas dimensões. 
 Já na Figura 15 encontramos um exemplo de multiplicação entre matrizes.
Operações e métodos de matrizes em R 13
Figura 15. Multiplicação entre matrizes.
Vamos entender agora como funciona a multiplicação matricial, em que 
uma matriz A[n,m] multiplica uma matriz B[x,y], sendo que todos os números 
n,m,x,y são elementos pertencentes ao grupo de números naturais positivos 
(WICKHAM, 2019). O resultado é uma matriz de ordem (n, y), em que cada 
elemento resultante é a somatória da multiplicação das linhas pelas colunas. 
Veja na Figura 16 a fórmula e um exemplo de multiplicação em R. Observe o 
uso do operador %*% em R. 
Operações e métodos de matrizes em R14
Figura 16. Multiplicação matricial.
A função t() em R transposta uma matriz (WICKHAM, 2019). Uma matriz A 
transposta em outra matriz B, por exemplo, resulta numa matriz cujos ele-
mentos em coluna correspondem aos elementos em linha da matriz original, 
processo ilustrado na Figura 17.
Operações e métodos de matrizes em R 15
Figura 17. Matriz transposta.
Por fim, vamos demonstrar como o R opera matriz inversa. O R trata 
operações de matriz inversa com a função solve() (WICKHAM; GROLEMUND, 
2019). Vamos ao exemplo da Figura 18, em que temos uma matriz quadrada 
de elementos de 1:4. A seguir, usamos a função solve() para determinar a 
matriz inversa. Lembre-se que a multiplicação matricial da matriz com sua 
inversa gera uma matriz identidade de mesma ordem. 
Operações e métodos de matrizes em R16
Figura 18. Matriz inversa.
Portanto, o R possui algumas funções que simplificam e facilitam as ope-
rações entre matrizes. No próximo tópico, apresentaremos alguns problemas 
solucionados com operações de matrizes em R.
Aplicações 
Neste tópico, vamos apresentar algumas soluções práticas resolvidas por uso 
de matrizes em R. No primeiro exemplo, imagine a seguinte situação: uma 
empresa produz três produtos distintos (P1, P2, P3). Cada produto requer duas 
matérias-primas (M1, M2) para ser produzido. A relação entre os produtos e 
as matérias-primas é demonstrada no Quadro 1.
Operações e métodos de matrizes em R 17
Quadro 1. Relação produto × matéria prima
Produto
Matéria 
Prima (M1)
Matéria 
Prima (M2)
Unidades de 
produção
P1 1 2 2
P2 1 1 4
P3 1 4 6
O problema consiste em obter a quantidade total de matéria-prima M1 
e M2 utilizada na produção dos produtos. Nesse exemplo, pode-se resolver 
o problema utilizando-se as operações com matrizes em R. A Figura 19 ilus-
tra primeiramente dois vetores sendo criados com as informações de cada 
matéria-prima com cada produto. Como temos somente duas matérias-primas, 
será criada uma matriz produto[2,3]. A seguir, usa-se a função rbind() para 
a construção da matriz. 
Figura 19. Total de matérias-primas.
Operações e métodos de matrizes em R18
Pronto, com a matriz pronta, chega a hora de criar a matriz das unidades. 
Isso é feito via função matrix(). Em seguida, precisamos fazer uma multi-
plicação matricial das duas matrizes e o resultado é a quantidade total de 
matéria-prima utilizada.
O próximo exemplo prático tem como objetivo, por meio de um script em 
R, determinar a quantidade de produtos de madeira utilizados na construção 
de dez casas do tipo Moderna, conforme mostrado no Quadro 2.
Quadro 2. Materiais para construção
Cimento Madeira Vidro Tijolo Areia
Quantidade 
de casas
Moderna 10 20 10 20 10 10
Contemporânea 15 10 15 20 15 12
Tradicional 20 30 10 20 10 24
Bem, em R, primeiro vamos construir a tabela conforme o Quadro 2. Nesse 
exemplo, vamos utilizar três vetores e o comando rbind() para a construção da 
tabela, dois vetores com os nomes de colunas e linhas da tabela e a matriz será 
criada com a função matrix(). Por fim, é realizada a multiplicação da quanti-
dade de casas a serem construídas pelo valor na posição da tabela (Figura 20).
Figura 20. Total de madeira para casa Moderna.
Operações e métodos de matrizes em R 19
Vejamos outro exemplo. Digamos que a cidade fictícia de Cachoeiras 
registrou e armazenou dados locais de temperatura, em graus centígrados. 
As temperaturas foram registradas em um momento i do dia j, em um bairro 
central de Cachoeiras, e podem ser representadas na matriz da Figura 21.
Figura 21. Temperaturas registradas em diferentes momentos de diferentes dias na cidade 
de Cachoeiras.
Como podemos descobrir, por exemplo, a diferença de temperatura entre 
momentos e dias? Acessando os valores da matriz relacionados ao momento 
e ao dia, subtrai-se os valores. Veja a solução aplicada na Figura 22, utilizando 
os comandos associados em R. 
Figura 22. Cálculo de diferença de temperatura em R.
Operações e métodos de matrizes em R20
Primeiro foram criados os vetores e a matriz com o comando rbind(). 
Em seguida, utilizando-se o acesso direto aos elementos da matriz pela 
expressão temp[linha, coluna], uma operação de subtração simples foi 
realizada entre esses elementos, obtendo-se o resultado. Note que os índices 
de linha e coluna são determinantes para a leitura dos dados na posição 
correta. No caso desse exemplo, temp[2,3] (1º momento, 2º dia) e temp[1,2] 
(1º momento, 2º dia). 
Vejamos um último exemplo prático. João é um profissional autônomo 
na área de computação. Ultimamente, João estuda a linguagem R e 
seu hobbyé criar script baseados em problemas que ele encontra na internet. 
Ele tem uma irmã, Carla, de 15 anos, que está estudando matrizes na escola. 
Carla questionou João se seria possível resolver via computação problemas com 
matrizes solicitados pelo professor. João respondeu que sim, e Carla então lhe 
apresentou um problema: usando matrizes, como determinar a nota necessária 
para alcançar a nota final mínima de 6 e passar na disciplina, sendo a nota final 
composta da nota do 1º bimestre mais a nota do 2º bimestre. 
Então, João começou a resolver o problema. Primeiro, criou duas matrizes com 
as notas de cada disciplina: uma para o 1º bimestre e outra para 2º bimestre. 
As matrizes foram construídas com o comando rbind() e vetores de ordem 
V[2,n], sendo n o número de disciplinas. Em seguida, João criou uma matriz 
com a média associada a cada disciplina da mesma ordem das matrizes dos 
bimestres. O próximo passo foi fazer uma soma de matrizes do 1º bimestre e 
do 2º bimestre, resultando em uma matriz total _ notas (total _ notas 
= bim1 + bim2). Por fim, João subtraiu a matriz com a média pela matriz 
total _ notas ( nota = media _ final – total _ notas). O resultado 
foi a nota necessária para alcançar a aprovação na disciplina, além de demonstrar 
à sua irmã que é possível aplicar os conceitos de matriz em R.
Portanto, operações com matrizes em linguagem R seguem os mesmos 
princípios da matemática e podem ser aplicadas em diversas soluções com-
putacionais de problemas reais cotidianos. A riqueza da linguagem R por 
meio de suas funções permite que o usuário desenvolvam scripts e obtenha 
soluções mais rapidamente em comparação com cálculos realizados na ponta 
do lápis. Diante disso, utilizar matrizes em R torna-se em uma solução viável 
a diversos problemas computacionais de diversas áreas. 
Referências
BASTOS, R. Matrizes e determinantes: teoria e exercícios resolvidos. Rio de Janeiro: 
Ciência Moderna, 2017.
DE VRIES, A.; MEYS, J. R for dummies. 2. ed. New Jersey: John Wiley & Sons, 2015.
Operações e métodos de matrizes em R 21
KABACOFF, R. L. R in action: data analysis and graphics with R. 2. ed. New York: Manning, 
2015.
WICKHAM, H. Advanced R. 2. ed. New York: Chapman and Hall/CRC, 2019.
WICKHAM, H.; GROLEMUND, G. R para data science: importe, arrume, transforme, visualize 
e modele dados. Rio de Janeiro: Altas Book, 2019.
Os links para sites da web fornecidos neste capítulo foram todos 
testados, e seu funcionamento foi comprovado no momento da 
publicação do material. No entanto, a rede é extremamente dinâmica; suas 
páginas estão constantemente mudando de local e conteúdo. Assim, os editores 
declaram não ter qualquer responsabilidade sobre qualidade, precisão ou 
integralidade das informações referidas em tais links.
Operações e métodos de matrizes em R22

Mais conteúdos dessa disciplina