R (linguagem de programação)/Introdução
R é, ao mesmo tempo, uma linguagem de programação e um pacote estatístico. Apesar de R ser usada, primariamente, para análises estatísticas, ela é uma linguagem de programação completa, capaz de realizar qualquer tarefa que outras linguagens realizam.
Linguagem interpretada
[editar | editar código-fonte]R é uma linguagem interpretada. Há algum tempo atrás, esta seria uma grande desvantagem em termos de performance, porém, como os cálculos internos são feitos em linguagens de baixo nível e altamente otimizados, programas complexos escritos em R rodam até mais rápido do que programas equivalentes escritos em linguagens teoricamente mais rápidas como C ou FORTRAN.
Por exemplo, o código abaixo, que calcula o valor de π usando o método de Monte Carlo, escrito em C:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
int N = 100000000;
int ok = 0;
double pi = 0, x, y;
int i;
for (i = 0; i < N; i++) {
x = (random() * 1.0)/ RAND_MAX;
y = (random() * 1.0)/ RAND_MAX;
if (x*x + y*y < 1) ok++;
}
pi = (4.0 * ok) / N;
printf("pi = %.6lf\n", pi);
return(0);
}
e o código abaixo, escrito em R:
N <- 100000000 x <- runif(N) y <- runif(N) ok <- sum(x^2 + y^2 < 1) mc.pi <- 4 * ok / N sprintf("pi = %.6lf\n", mc.pi)
podem ter uma performance equivalente, desde que a máquina que roda o código em R consiga lidar facilmente com vetores de tamanho 100M.
Básico e pacotes
[editar | editar código-fonte]R tem um módulo básico, e vários pacotes. Estes pacotes são opcionais, mas a sua instalação é simples.
A lista dos pacotes encontra-se no site CRAN, acrônimo de Comprehensive R Archive Network (por analogia com o site em Perl, CPAN).
A maioria dos pacotes tem por objetivo análises estatísticas, porém praticamente qualquer aplicativo que exista pode ser portado para R. Assim, temos os pacotes fSeries e tseries (séries temporais em finanças), lmtest (testes de modelos de regressão linear), fOptions (cálculos envolvendo opções), linprog (programação linear), tcltk (interface gráfica usando o toolkit Tk), xlsReadWrite (ler e escrever arquivos compatíveis com o Excel), rimage (processamento de imagens), etc.