em , ,

R na Prática – Parte 10 – Elementos de Programação em Linguagem R

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:

script_1

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.

Figura 8: Sistema de indexação de um vetor com 15 elementos, em 3 linhas por 5 colunas

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().

Tabela 7: 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).

script 2

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.

Escrito por Jorge Kazuo Yamamoto

Prof. Dr. Jorge Kazuo Yamamoto, fundador da Geokrigagem, é geólogo, foi pesquisador do IPT e docente do Instituto de Geociências da USP, onde se aposentou como Professor Titular do Departamento de Geologia Sedimentar e Ambiental. Atualmente, atua como Professor Sênior do Departamento de Engenharia de Minas e de Petróleo – Escola Politécnica – USP. É responsável pela disciplina “Métodos geoestatísticos” na Pós-Graduação do IPT – Investigação do subsolo: Geotecnia e Meio Ambiente. Dedica-se ao ensino de geoestatística, com ênfase no desenvolvimento de algoritmos e pesquisa de novas aplicações, tais como: variância de interpolação, cálculo da variância global de depósitos minerais e correção do efeito de suavização da krigagem. Ultimamente, seu interesse está voltado para o ensino e divulgação da linguagem R.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

R na Prática – Parte 9 – Elementos de Programação em Linguagem R

R na Prática – Parte 11: Elementos de Programação em Linguagem R