Linguagem R

Preview:

DESCRIPTION

Apresentação sobre a linguagem R.

Citation preview

● R é uma linguagem e um ambiente de desenvolvimento integrado, para cálculos estatísticos e gráficos.

● Foi criada originalmente por Ross Ihaka e por Robert Gentleman na universidade de Auckland,Nova Zelândia, e foi desenvolvido por um esforço colaborativo de pessoas em vários locais do mundo

● O nome R provêm em parte das iniciais dos criadores e também de um jogo figurado com a linguagem S (da Bell Laboratories, antiga AT&T).

● O ambiente R foi desenvolvido baseado na linguagem S, no final da década de 90 início dos anos 2000. É uma linguagem e ambiente similar ao S - pode ser considerado uma implementação distinta do S; embora com importantes diferenças, muitos códigos escritos para o S rodam inalterados no R. A implementação comercial de S é S-PLUS.

● A sua estrutura de código aberto (que vem da linguagem S) e de software público e gratuito atraiu um grande número de desenvolvedores, sendo que há hoje inúmeros pacotes para o R.

● R é também altamente expansível com o uso dos pacotes, que são bibliotecas para funções específicas ou áreas de estudo específicas.

● A linguagem está se tornando padrão porque os processos de mineração de dados vivem uma era dourada, quer estejam em uso para determinar preços de publicidade, descobrir novos medicamentos mais rápido ou fazer a sintonia fina de modelos financeiros. Empresas as mais diversas, como por exemplo Google, Pfizer, Merck, Bank of America, InterContinental Hotels Group e Shell, estão usando a linguagem R.

● Os co-criadores da R estão satisfeitos com o sucesso de seu trabalho e do trabalho de centenas de voluntários. Ihaka ainda leciona estatística em Auckland, e Gentleman hoje trabalha no Centro Fred Hutchinson de Pesquisa do Câncer, em Seattle.

● "A R é uma demonstração real do poder da colaboração, e não creio que fosse possível criar algo parecido de qualquer outra maneira", Ross Ihaka.

●Desde de Antigamente ●Como é conhecida a estatística ●O que é Estatística

Estatística

Alguns métodos para auxiliar na estatística: ●Planejamento●Análise●Processamento●Disseminação/Dispersão/Espalhamento● Inferência

Estatística

Estatística

ProgramaçãoEstatística

●O que é Programação Estatística ●Para que é utilizada

ProgramaçãoEstatística

Sintaxe Básica

Um comando no R em geral inclui uma ou mais funções, que seguem a seguinte sintaxe:

função(argumento1 = valor, argumento2 = valor , …)

Linha de Comando

O R é uma linguagem interativa, ou seja, que permite ao usuário enviar um comando por vez e receber o resultado. Para isso, usa-se a linha de comando, que tem o sinal ”>”

quando o R está pronto para receber um comando.

>> log(2+ )[1] 0.6931472>

Exemplo

> plot(x=area,y=riqueza)> plot(area, riqueza)> plot(area,riqueza,xlab="Área (ha)", ylab="Riqueza")

No primeiro caso, os argumentos estão explicitados. No segundo caso, os argumentos estão omitidos, então a linguagem R atribui os valores para os argumentos na ordem em que aparecem. No terceiro caso, ambas as formas de declarar variáveis foram utilizadas.

Alguns Comandos

● ls - lista todo conteúdo da área de trabalho.● rm - apaga objetos da área de trabalho.● help ou ? - ajuda.● help.start() - portal de ajuda aberto no navegador.● help.search() - pesquisas mais refinadas.● args - retorna os argumentos de uma função.● example - retorna os exemplos que estão na ajuda de

uma função.● q() - sair.● save.image() - salva o trabalho.● load - carrega o trabalho.

Particularidades dos Comandos no R

Como em toda linguagem, o R tem algumas regras básicas de sintaxe e grafia: 1. O nome de comandos e objetos no R pode ser compostos de: letras

(minúsculas ou maiúsculas), números, e o ponto.2. Deve-se evitar qualquer outro caracter especial, incluindo o espaço em

branco.3. O nome não pode ser iniciado por um número.4. O R é sensível a caixa: o comando q é diferente do comando Q.Para que um comando seja executado pelo R é necessário ser acompanhado de parênteses '()'. Compare esse comando

Estatística:●Auxiliar na Leitura, cálculo e interpretação de dados

estatísticos;●Cálculos para estatística sempre levam em conta

conjuntos de valores relacionados;●Estes conjuntos podem ser lidos diretamente pelo

interpretador ou em arquivos, como é mais comum.●Tais valores são armazenados

em vetores e matrizes, e a linguagem R possui inúmeras funções built-in para a realização de cálculos de Álgebra Linear e Não-Linear, bem como a manipulação dessas estruturas.

Principais aplicações

●Leitura e cálculo de dados ●a partir de arquivos:

○x <- read.table("valores.txt")○print(x)○y <- x[,1]○z <- x[,2]○k = sum(z) - x[6,2]○prod(y)○log(z[5])

V1 V21 1152 14532 1257 76323 1550 40004 1748 34165 1753 20986 1762 16507 2043 17538 2098 21699 2142 176210 4000 908011 6186 155012 8517 5025

Principais aplicações

Funções de Álgebra linear aplicáveis em estatística:

●Média aritmética simples:○mean(y)

● Média aritmética ponderada:○ weighted.mean(y)

●Desvio padrão:○sd(y)

●Estimativa de densidade pelo método Kernel:○density(y)

Principais aplicações

●Plotagem de gráficos em 2D e 3D●através da GLU -●OpenGL Utility Library:●plot.new()

○pie(y), plot(y, type="l"),○barplot(y), etc..

Principais aplicações

Fractais:

Principais aplicaçõesLimits=c(-2,0.8)

MaxIter=25cl=colours()Step=seq(Limits[1],Limits[2],by=0.005)S=floor(length(cl)/MaxIter)Dist=0PointsMatrix=array(0,dim=c(length(Step)*length(Step),3))t=0for(a in Step){

for(b in Step+0.6){

x=0;y=0;n=0;Dist=0while(n<MaxIter &

Dist<4){

n=n+1newx=a+x^2-y^2newy=b+2*x*yDist=newx^2+newy

^2x=newx;y=newy

}if(Dist<4) colour=24 #

black colourelse colour=n*St=t+1PointsMatrix[t,]=c(a,b,

colour)}

}X11()plot(PointsMatrix[,1], PointsMatrix[,2], xlim=Limits, ylim=Limits+0.6, col=cl[PointsMatrix[,3]], pch=".")

Os exemplos a seguir necessitam do interpretador R instalado, além dos pacotes rgl e animation instalados. Para instalar o interpretador R consulte: http://cran.r-project.org/Os demais pacotes podem ser instalados da seguinte forma (sendo $ o seu shell e > o interpretador R): # Executa o interpretador R$R>install.packages("rgl")>install.packages("animation")# Para executar os exemplos >source("arquivoComOExemplo.r")

library(animation)

oopt = ani.options(nmax = 500, interval = 0)opar = par(mar = c(3, 2.5, 0.5, 0.2), pch = 20, mgp = c(1.5, 0.5, 0))buffon.needle()

# Torna mais rápidobuffon.needle(redraw = FALSE)

par(opar)

# Cria uma página html de animaçãoani.options(nmax = 100, interval = 0.1, ani.height = 500, ani.width = 600, outdir = getwd(), title = "Simulation of Buffon's Needle", description = "There are three graphs made in each step: the top-left one is a simulation of the scenario, the top-right one is to help us understand the connection between dropping needles and the mathematical method to estimate pi, and the bottom one is the result for each dropping.")

ani.start()par(mar = c(3, 2.5, 1, 0.2), pch = 20, mgp = c(1.5, 0.5, 0))buffon.needle(type = "S")

ani.stop() ani.options(oopt)

library(animation)

# Cria uma animação em página html do movimento brownianooopt = ani.options(interval = 0.05, nmax = 100, ani.dev = png, ani.type = "png", title = "Demonstration of Brownian Motion", description = "Random walk on the 2D plane: for each point (x, y), x = x + rnorm(1) and y = y + rnorm(1).")ani.start()opar = par(mar = c(3, 3, 1, 0.5), mgp = c(2, .5, 0), tcl = -0.3, cex.axis = 0.8, cex.lab = 0.8, cex.main = 1)brownian.motion(pch = 21, cex = 5, col = "red", bg = "yellow")par(opar)ani.stop()ani.options(oopt)

clifford <- function(a,b,c,d,n=2000){ x<-rep(NA,n) y<-rep(NA,n) z<-rep(3,n) x[1]<-pi/2 y[1]<-pi/2 for (i in 2:n) { x[i]<-sin(a*y[i-1])+c*cos(a*x[i-1]) y[i]<-sin(b*x[i-1])+d*cos(b*y[i-1]) } require(rgl) rgl.clear() rgl.points(x,y,z, color=heat.colors(n), size=1)}

clifford(-1.4,1.6,1.0,0.7)

rossler<-function(n=2000,a=.2,b=.2,c=1.7,x0=0.0001,y0=0.0001,z0=0.0001){ x<-c(x0,rep(NA,n-1)) y<-c(y0,rep(NA,n-1)) z<-c(z0,rep(NA,n-1)) h<-0.015 for (i in 2:n) { x[i]<-x[i-1]-h*(y[i-1]+z[i-1]) y[i]<-y[i-1]+h*(x[i-1]+a*y[i-1]) z[i]<-z[i-1]+h*(b+z[i-1]*(x[i-1]-c)) } require(rgl) rgl.clear() rgl.points(x,y,z, color=heat.colors(n), size=1)}

rossler(2000,x0=3,y0=4,z0=.4)

Recommended