Ambos os scripts mostram o resultado da média das notas, que é
7.5. O segundo código exemplifica a intenção dos desenvolvedores do R com a criação de uma linguagem funcional e orientada à
objetos.
O script da Fig. \ref{536287} , procurar ilustrar um paradigma
computacional procedural. O script da Fig. \ref{288592} ilustra o paradigma funcional,
os códigos são embutidos em funções que retornam algum valor. O
usuário não precisaria se preocupar com os detalhes do procedimento de
execução do algoritmo. Os códigos seriam escritos próximo a como se
escreve uma instrução matemática, como no caso mean(notas)
.
Também
representa a otimização para operações
vetorizadas, isto é, com o conjunto de dados e não com cada elemento em
separado. Quando o vetor notas é colocado como parâmetro da função
mean()
, o procedimento é realizado como um conjunto dos dados de uma
vez, e não com cada valor, um por um, como na Fig. \ref{536287}.
Essa é força da linguagem R , a realização de operações
vetorizadas com códigos escritos, na medida do possível, de forma
funcional e valendo-se do paradigma orientado a objetos. As operações
vetorizadas são bem mais rápidas do que operações elemento por elemento.
Mas essas características infelizmente também representam boa parte da
dificuldade que iniciantes têm com o R . Na verdade, o R é bastante versátil. O que pode, de início, se parecer mais
com um enigma, com o avanço da aprendizagem, se perceberá que são
características facilitadoras de programação. Com o R , pode-se
construir códigos que representam o modelo de análise dos dados. E isso
facilita a comunicação científica e a reprodutibilidade dos resultados.
Extraindo subconjuntos de dados em um
vetor
Armazenar valores em vetores permite a aplicação de funções sobre os
conjuntos dos dados de uma só vez, ao invés de forçar sempre o
tratamento de cada elemento individualmente, como visto no exemplo da
função que calcula a média das notas mean(notas). Essa concepção da
linguagem de programação R pretende tornar mais eficiente tanto
a execução, quanto a elaboração dos scripts .
A vetorização facilita também a manipulação de subconjuntos de valores
em um vetor. Quase sempre, em análise de dados, procura-se informações
comparando grupos de valores ou identificando casos específicos. Como os
valores em um vetor são tratados como um conjunto de dados (set ),
a operação de identificar partes dos valores armazenados é chamada de
manipulação de subconjuntos (subsetting ).
No exemplo do Script 1 foi mostrado que para acessar cada valor
armazenado no vetor notas utilizou-se os colchetes[ ]
14como operador. Vamos ver na Figura 5 uma ilustração de como
esse procedimento ocorre.