Tipos de objetos: Matrix
Na linguagem R, trata-se do tipo de objeto mais comum e importante na análise numérica. Por exemplo, em geoestatística, a matriz dos coeficientes de um sistema de equações multiquádricas tem essa estrutura de dados.
A função solve() pode ser usada para a solução de um sistema de equações lineares, onde o primeiro argumento é a matriz dos coeficientes (A) e o segundo o vetor y. Um exemplo de script que emprega essa estrutura formando um sistema de equações lineares é mostrado a seguir:
Nesse script, monta-se um vetor (a) de nXn elementos, que são concatenados para uma matriz A com n linhas por n colunas. Observe-se que o vetor (a) é organizado seguindo uma estrutura bidimensional como ilustra a Figura 8. O vetor (b) é combinado como uma matriz C com n linhas por uma coluna. No próximo comando, resolve-se a solução do sistema de equações lineares usando a função solve() do R.
Cada elemento desse vetor recebe um índice que pode ser calculado pela expressão a seguir:
Onde: k e l representam colunas e linhas, respectivamente e knt é a dimensão da matriz.
A Tabela 7 apresenta a definição do objeto matrix().
No exemplo a seguir, tem-se duas formas de criar uma matriz, sendo que a primeira mostra uma organização por colunas e a outra por linhas, pois a opção “byrow=TRUE”. Esta última forma é exatamente aquela empregada no exemplo de uma matriz dos coeficientes de um sistema de equações lineares. A matriz m3 é a transposta da matriz m2 que é obtida usando a função t().
A transposição é feita trocando linhas por colunas, ou seja, as linhas da matriz m2 passam a ser colunas da matriz m3.
Para acessar os valores individuais da matriz, usa-se os índices [i,j], ou seja, linha e coluna, respectivamente. Por exemplo, se for digitado no console m1[2,3], a resposta é igual a 8 e no caso de m2[2,3], o valor 10 é mostrado:
Uma das grandes vantagens da linguagem R é a existência de funções pré-programadas que facilitam a programação e deixam o código mais claro e objetivo. Algumas das funções pré-programadas para uma matriz estão exemplificadas nos comandos a seguir (baseado em Brunsdon e Comber, 2015, p. 22).
Como se pode verificar neste script, tem-se as funções: rowSums(), colSums(), rowMeans() e colMeans(), que calculam para um matriz: a soma por linhas, a soma por colunas, as médias por linhas e as médias por colunas, respectivamente. Além destas funções, pode-se usar a função apply(), conforme segue.
Onde, o argumento 1 indica por linhas e 2 por colunas. Além de somas e médias (sum e mean), pode-se determinar o mínimo, máximo e somas cumulativas (min, max e cumsum).
Conclui-se conforme o demonstrado que existem uma grande quantidade de funções para manipulação de matrizes, algumas absolutamente equivalentes. Tudo isso vem do sistema colaborativo da plataforma R.
Referência bibliográfica
Brundson, Cr.; Comber, L. 2015. An introduction to R for spatial analysis & mapping. London, Sage Publications Inc. 343p.
Próximo artigo sobre Linguagem R
No próximo artigo, iremos abordar os objetos data frame e list, que são estruturas de dados importantes na linguagem R.
Acesso o nosso blog para conferir o artigo anterior.