Linguagem sequencial R de Programação de Computadores 2ª Parte


Recursos estatísticosEditar

A R disponibiliza uma ampla variedade de técnicas estatísticas e gráficas, incluindo modelação linear e não linear, testes estatísticos clássicos, análise de séries temporais (time-series analysis), classificação, agrupamento e outras. A R é facilmente extensível através de funções e extensões, e a comunidade R é reconhecida pelos seus contributos ativos em termos de pacotes. Existem diferenças importantes, mas muito código escrito para S corre inalterado. Muitas das funções padrão do R são escritas no próprio R, o que torna fácil para os usuários seguir as escolhas algorítmicas feitas. Para tarefas computacionais intensivas, os códigos CC++, e Fortran podem ser ligados e chamados durante a execução. Usuários experientes podem escrever código C ou Java[14] para manipular diretamente objetos R.

O R é fortemente extensível através do uso de pacotes enviados pelo utilizador para funções específicas ou áreas específicas de estudo. Devido à sua herança do S, o R possui fortes recursos de programação orientada por objetos, mais que a maioria das linguagens de computação estatística. Ampliar o R também é facilitado pelas suas regras de contexto lexical.[15]

Outra força do R são os gráficos estáticos, que podem produzir imagens com qualidade para publicação, incluindo símbolos matemáticos. Gráficos dinâmicos e interativos estão disponíveis através de pacotes adicionais.[16]

O R tem a sua própria documentação em formato LaTeX, a qual é usada para fornecer documentação de fácil compreensão, simultaneamente on-line em diversos formatos e em papel.

Recursos de programaçãoEditar

A R é uma linguagem interpretada tipicamente utilizada através de um Interpretador de comandos. Se um usuário escreve "2+2" no comando de inserção e pressiona enter, o computador responde com "4", conforme se mostra abaixo:

> 2+2
[1] 4

Como muitas outras linguagens, a R suporta matrizes aritméticas. A estrutura de dados da R inclui escalares, vetores, matrizes, quadros de dados (similares a tabelas numa base de dados relacional) e listas.[17] O sistema de objetos da R é extensível e inclui objectos para, entre outros, modelos de regressão, séries temporais e coordenadas geoespaciais.

A R suporta programação processual com funções e, para algumas funções, programação orientada a objetos com funções genéricas. Uma função genérica atua de forma diferente dependendo do tipo de argumentos que é passado. Por outras palavras a função genérica determina (dispatches) a função (método) específica para aquele tipo de objeto. Por exemplo, a R tem uma função genérica print() que pode imprimir quase qualquer tipo de objeto em R com uma simples sintaxe "print(nomedoobjeto)".

Enquanto a R é maioritariamente usada por estatísticos e outros utilizadores que requerem um ambiente para computação estatística e desenvolvimento de software, pode ser igualmente usada como uma caixa de ferramentas para cálculo matricial geral com benchmarks de desempenho comparáveis ao GNU Octave ou ao MATLAB.[18]

ExemplosEditar

Exemplo 1Editar

Os seguintes exemplos ilustram a sintaxe básica da língua e o uso do interface de linha de comando.

Na R, o largamente preferido[19][20][21][22] operador de atribuição é uma seta formada por dois caracteres "←", embora "=" possa ser usado em sua vez.[23]

> xc(1,2,3,4,5,6)   # Create ordered collection (vector)
> yx^2              # Square the elements of x
> print(y)              # print (vector) y
[1]  1  4  9 16 25 36
> mean(y)               # Calculate average (arithmetic mean) of (vector) y; result is scalar
[1] 15.16667
> var(y)                # Calculate sample variance
[1] 178.9667
> lm_1lm(y ~ x)     # Fit a linear regression model "y = f(x)" or "y = B0 + (B1 * x)"
# store the results as lm_1
> print(lm_1)           # Print the model from the (linear model object) lm_1

Call:
lm(formula = y ~ x)

Coefficients:
(Intercept)            x
     -9.333        7.000

> summary(lm_1)          # Compute and print statistics for the fit
# of the (linear model object) lm_1

Call:
lm(formula = y ~ x)

Residuals:
1       2       3       4       5       6
3.3333 -0.6667 -2.6667 -2.6667 -0.6667  3.3333

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  -9.3333     2.8441  -3.282 0.030453 *
x             7.0000     0.7303   9.585 0.000662 ***
---
Signif. codes:  0***0.001**0.01*0.05.’ 0.1 ‘ ’ 1

Residual standard error: 3.055 on 4 degrees of freedom
Multiple R-squared: 0.9583, Adjusted R-squared: 0.9478
F-statistic: 91.88 on 1 and 4 DF,  p-value: 0.000662

> par(mfrow=c(2, 2))     # Request 2x2 plot layout
> plot(lm_1)             # Diagnostic plot of regression model

Diagnostic graphs produced by plot.lm() function. Features include mathematical notation in axis labels, as at lower left.

Exemplo 2Editar

Código R curto calcula o conjunto de Mandelbrot através das primeiras 20 iterações da equação z = z² + c mapeados para diferentes constantes complexas c. Este exemplo demonstra:

  • O uso de bibliotecas externas (chamadas pacotes) desenvolvidas pela comunidade, neste caso, o pacote caTools
  • Manipulação de número complexo.
  • Matrizes multidimensionais de números usados como tipos de dados básicos, ver variáveis C, Z e X.
library(caTools)        # external package providing write.gif function 
jet.colorscolorRampPalette(c("#00007F", "blue", "#007FFF", "cyan", "#7FFF7F", "yellow", "#FF7F00", "red", "#7F0000"))
m1200                # define size
Ccomplex( real=rep(seq(-1.8,0.6, length.out=m), each=m ),
              imag=rep(seq(-1.2,1.2, length.out=m), m ) )
Cmatrix(C,m,m)       # reshape as square matrix of complex numbers
Z0                   # initialize Z to zero
Xarray(0, c(m,m,50)) # initialize output 3D array 
for (k in 1:50) {       # loop with 50 iterations
  ZZ^2+C             # the central difference equation
  X[,,k]exp(-abs(Z)) # capture results
}
write.gif(X, "Mandelbrot.gif", col=jet.colors, delay=100)

"Mandelbrot.gif" – Graphics created in R with 14 lines of code in Example 2

Exemplo 3Editar

## Leitura do conjunto de dados. Também pode-se usar read.csv() quando os dados estiverem em arquivos .csv 
dados <- read.table("escreva a localização do arquivo...", header=TRUE)

## Preparação de dados 
dados.vetor <- c(dados$trat1, dados$trat2, dados$trat3, dados$trat4) %pode ser com qualquer quantidade de tratamentos.

N <- gl(trat, repeticoes) %escreva o número de tratamentos e o tratamento com maior número de repetições.
dados.vert <- data.frame(N, dados.vetor)
fator <- factor(Loc) % fatores são variáveis tratadas como variáveis categóricas no R.

## Cáculo da tabela ANOVA
pre_anova <- aov(dados.vetor~fator)
ANOVA <- summary(pre_anova)

## Fazendo teste de Tukey, teremos:
TukeyHSD(pre_anova, ordered=TRUE)
plot(TukeyHSD(bruto.aov, ordered=TRUE))

sk5 <- SK(x=dados, y=dados.vert$dados.vetor, model="y~fator", which="fator",sig.level=0.05)
summary(sk5)

PacotesEditar

As capacidades da R são estendidas através de pacotes criados pelo usuário, que permitem técnicas estatísticas especializadas, dispositivos gráficos, capacidades de importação/exportação, ferramentas de relatórios, etc. Estes pacotes são primeiro desenvolvidos em R, e por vezes em JavaC e Fortran. Um conjunto básico de pacotes são incluídos com a instalação do R, com 5300 pacotes adicionais (a partir de abril 2012) disponíveis em Comprehensive R Archive Network (CRAN), Bioconductor, e outros repositórios.[24]

A página "Task Views" (lista de assuntos) no website da CRAN lista a vasta gama de aplicações (Finança, genética, aprendizagem de máquinas, imagiologia médica, ciências sociais e estatísticas espaciais) nos quais R tem sido aplicada e para que pacotes está disponível.

Outros recursos do pacote R incluem Crantastic, um site comunitário para avaliação e revisão de todos os pacotes CRAN, e também R-Forge, uma plataforma central para o desenvolvimento colaborativo de pacotes R, software relacionado com R, e projetos. Tem muitos documentos não publicados, pacotes beta e versões de desenvolvimento de pacotes CRAN.

O projeto Bioconductor disponibiliza pacotes R para a análise de dados genómicos, tais como Affymetrix e cDNA de análise e manipulação de dados orientadas a objetos, e começou disponibilizar ferramentas para a análise de dados da próxima geração de métodos de alto rendimento de sequenciação.

A pesquisa reprodutível e geração automática de relatórios pode ser realizada com pacotes que suportam a execução de código R incorporado em LaTeXOpenDocument format e outros marcadores (markups).[25]


Postagens mais visitadas deste blog

A Economia antes e depois do Plano Real

Propulsão de Foguete: Wikipédia, Conceitos

Cruzeiro - Plano econômico e Moeda