Sie sind auf Seite 1von 67

X Encontro Mineiro de Estatística

OFICINA R
P RO F. R I C A R D O TAVA R E S
D E M AT – U F O P
T AV A R E S @ I C E B . U F O P. B R

W W W . I C E B . U F O P. B R / D E M AT

13 E 14 DE OUTUBRO DE 2011
SÃO JOÃO DEL REI - MG
resumo
2

 O R é um ambiente computacional estatístico


poderoso e passível de ser expandido com o
uso dos pacotes que são bibliotecas de
funções específicas. Além de ser um software
livre e de código aberto, possui interface com
linguagens interpretadas e/ou compiladas, e
está disponível para diversos sistemas
operacionais;

 Esta oficina R vai apresentar os principais


pontos do R de forma que a estrutura da
linguagem seja compreendida. Algumas
análises estatísticas serão realizadas com
banco de dados reais e também através de
simulações.

Prof. Ricardo Tavares - DEMAT - UFOP


Apresentação
3

 Introdução ao R
 Manipulações simples: números e vetores
 Objetos, seus modos e atributos
 Fatores ordenados e não ordenados
 Array e matrizes
 Dataframe e listas
 Estruturas de laços e condicionais
 Escrevendo suas próprias funções
 Lendo e escrevendo arquivos de dados
 Análise exploratória de dados e gráficos
 Distribuições de probabilidade
 Aplicações e Simulações

Prof. Ricardo Tavares - DEMAT - UFOP


O que é R?
4

 Uma linguagem de programação baseada


na linguagem S, escrita originalmente por
Ross Ihaka e Robert Gentleman na
universidade de Auckland, Nova Zelândia;

 Um programa estatístico poderoso e de


domínio público;

 R é um ambiente computacional para


análise estatística de dados, gráficos e
muitos outros recursos que você pode
implementar;
Prof. Ricardo Tavares - DEMAT - UFOP
Vantagens
5

O R traz muitas vantagens para o


usuário, embora estas nem sempre
sejam óbvias no início;

1) É um software livre e pode ser


livremente copiado e distribuído entre
usuários;

2) R fornece uma interface de entrada por


linha de comando (ELC);
Prof. Ricardo Tavares - DEMAT - UFOP
As quatro liberdades de um
software6
livre:
i) liberdade de uso para qualquer
finalidade;
ii) liberdade de estudar o software
completamente;
iii) liberdade de alterar e melhorar o
software;
iv) liberdade de redistribuir as alterações
feitas.

Prof. Ricardo Tavares - DEMAT - UFOP


Vantagens
7

3) R é disponível para Linux, Mac e


Windows;

4) Gráficos com qualidade para


publicação, incluindo símbolos
matemáticos e fórmulas quando
necessário; vejam dois exemplos pdf;

Prof. Ricardo Tavares - DEMAT - UFOP


Um ótimo investimento
8

 Dependendo do seu amor pela


programação, os custos iniciais de
aprender R podem ser mais altos em
relação a alguns pacotes comerciais,
como SPSS e Minitab;

 Porém, seja persistente e dedicado, pois


a capacidade e a propagação do R fará
você raramente olhar para outros
softwares;

Prof. Ricardo Tavares - DEMAT - UFOP


Baixando e instalando o R
9

 Para obter o R, basta entrar no site:


http://www.r-project.org

 Baixar o arquivo “R-2.13.2-win.exe”


localizado em CRAN, Brazil, UFPR,
Windows e Base;

 Para instalar o R, basta clicar duas vezes


nesse arquivo e seguir as instruções;

Prof. Ricardo Tavares - DEMAT - UFOP


Interface do R
10

 A interface do R é composta de três


janelas principais:

 A console (interface de programação),

 A quartz (apresenta os gráficos) e

 O editor (processador básico de texto);

Prof. Ricardo Tavares - DEMAT - UFOP


Janela console
11

Prof. Ricardo Tavares - DEMAT - UFOP


Janela quartz
12

Prof. Ricardo Tavares - DEMAT - UFOP


Janela editor
13

Prof. Ricardo Tavares - DEMAT - UFOP


Comandos do R
14

 Os comandos para R são expressões ou


atribuições:

 Expressões:
> 4/3 * pi * (77)^3

 Atribuições:
> x = 77

Prof. Ricardo Tavares - DEMAT - UFOP


Comandos do R
15

 Muitos deles são apresentados na forma


de função;

 Para chamá-las, basta entrar com o


nome, seguido de parênteses e
pressionar ENTER;

 Algumas funções tem vários argumentos


ou parâmetros que são especificados
dentro dos parênteses;
Prof. Ricardo Tavares - DEMAT - UFOP
Comandos do R
16

 Apenas uma função pode ser chamada


por linha na janela console;

 Para utilizar mais de um comando por


linha, separe-os por ponto-e-virgula;

 Exemplo de uma função R:


> q()
 A função q() sai/desiste do R;

Prof. Ricardo Tavares - DEMAT - UFOP


Comandos do R
17

 Uma linha que se inicia com # é tratada


como um comentário e não será
processada;

 Todas as informações dentro do R são


tratadas como um objeto;

 Um objeto pode ser vetor, matriz,


dataframe, array, lista, função, ajuste,
fórmula, etc;
Prof. Ricardo Tavares - DEMAT - UFOP
Comandos do R
18

 Nomes de objetos devem começar com


uma letra e podem conter letras,
números e/ou pontos;

 Maiúsculas e minúsculas são


consideradas diferentes;

 Sinais de atribuição: <- ou -> ou = ;

Prof. Ricardo Tavares - DEMAT - UFOP


O diretório de trabalho
19

 Um dos primeiros passos ao iniciar o R é


estabelecer o seu diretório de trabalho;

 Do contrário, ele vai ler e escrever


arquivos no diretório padrão;

 Que diretório é esse?


> getwd()
[1] "C:/Users/Ricardo Tavares/Documents"

Prof. Ricardo Tavares - DEMAT - UFOP


O diretório de trabalho
20

 Para alterar o diretório de trabalho, use


a função setwd, por exemplo:
> setwd("C:/Uso/XMGEST") ou
> setwd("C:\\Uso\\XMGEST")

Prof. Ricardo Tavares - DEMAT - UFOP


Pacotes
21

 Os pacotes são bibliotecas de funções


específicas que aumentam a
funcionalidade do R;

 Os pacotes são o maior benefício do R


frente aos outros softwares
concorrentes;

Prof. Ricardo Tavares - DEMAT - UFOP


Pacotes
22

 Os pacotes são hospedados em um site


espelho ou repositório CRAN;

 Há vários repositórios disponíveis e


listados na página oficial do R;

 Para escolher o seu CRAN (Ex.: UFPR):


>options(CRAN="http://cran-r.c3sl.ufpr.br/")

Prof. Ricardo Tavares - DEMAT - UFOP


Pacotes
23

 Para encontrar os pacotes disponíveis:


> available.packages()

 Para instalar um pacote (Ex.: maptools):


> install.packages("maptools")

 Não precisa instalar todos disponíveis!

Prof. Ricardo Tavares - DEMAT - UFOP


Pacotes
24

 Para remover um pacote:


> remove.packages("maptools")

 Para atualizar os pacotes instalados:


> update.packages()

 Para cada um deles você confirma se


deseja ou não atualizá-lo;

Prof. Ricardo Tavares - DEMAT - UFOP


Importando dados
25

 Para importar arquivos .txt e .csv:


> read.table() e > read.csv()

 Para importar um arquivo .xlsx:


> install.packages("xlsx") ; library(xlsx)
> read.xlsx(file="base.xlsx", sheetIndex=1,
as.data.frame=TRUE, header=TRUE)

 Para importar arquivos do SAS, SPSS, S,


Minitab, Stata, Epi Info, Octave, etc:
> install.packages("foreign") ; library(foreign)
Prof. Ricardo Tavares - DEMAT - UFOP
Armazenando dados
26

 O armazenamento das informações no R


é feito através de objetos (vetor, matriz,
dataframe, array, lista, função,...);

 Há diversos arquivos de dados já


armazenados em R ou nos seus pacotes
instalados:
> data()

Prof. Ricardo Tavares - DEMAT - UFOP


Acessando as variáveis
27

 Após a importação de um arquivo, podemos


acessar as variáveis usando:
> base$idade Ou

> attach(base)
> idade
> detach(base) # detach() encerra attach()

 A função search() mostra todos os pacotes


e objetos attached. Use detach neles;

Prof. Ricardo Tavares - DEMAT - UFOP


Área de trabalho do R
28

 Ao registrar variáveis na janela console,


antes de sair do R é possível salvar
estas informações para o uso futuro;
> save.image("MinhaConsole.RData")
> load("MinhaConsole.RData")

 Para listar todas as variáveis existentes


na área de trabalho atual:
> ls()

Prof. Ricardo Tavares - DEMAT - UFOP


Área de trabalho do R
29

 Enquanto os objetos ficam armazenados


nesse arquivo .RData; os comandos são
armazenados em outro arquivo com
extensão .Rhistory;
 Para listar o histórico: > history()
 Em outras palavras, precisa-se de salvar
a área de trabalho e depois salvar o
histórico;
> savehistory(file = "Historicos.Rhistory")
> loadhistory(file = "Historicos.Rhistory")
Prof. Ricardo Tavares - DEMAT - UFOP
Help dos comandos
30

1) help("função()") ou ?função() : Essa ajuda


deve ser solicitada quando se sabe da
existência e do nome da função;
2) help.search("topico") ou ??topico: Quando
se deseja investigar a existência de uma
função, mas tem-se apenas uma palavra-
chave;
3) Ajuda Html: Essa ajuda pode ser chamada
pela barra de menu, no botão ajuda (Help);
4) RSiteSearch("tópico"): Essa ajuda faz a
busca de uma palavra-chave em todas as
páginas da internet relacionadas com o R;

Prof. Ricardo Tavares - DEMAT - UFOP


Alguns materiais sobre R
31

 Felizmente, o R possui uma comunidade


grande e forte na web, com documentação
e discussões bem atuais para diversas
áreas de aplicação;

1) Site oficial do R
2) Livros
3) R-br - a lista
Brasileira oficial
de discussão do
programa R.
http://leg.est.ufpr.br/doku.php/software:rbr

Prof. Ricardo Tavares - DEMAT - UFOP


Vamos continuar?
32

 Com certeza!

 Queremos R!

 Então, vamos conhecer melhor a


estrutura dos comandos do R e algumas
aplicações!

Prof. Ricardo Tavares - DEMAT - UFOP


Algumas funções aritméticas
33

 sqrt : raiz quadrada


 abs : valor absoluto (positivo)
 exp e log : exponencial e logarítmo natural
 log10: logarítmo base-10
 choose : combinação
 factorial: fatorial
 gamma, digamma e trigamma : funções
matemáticas

 sin cos tan : funções trigonométricas


 asin acos atan: funções
trigonométricas inversas
 sinh cosh tanh : funções hiperbólicas
 asinh acosh atanh : funções
hiperbólicas inversas
Prof. Ricardo Tavares - DEMAT - UFOP
Operadores aritméticos
34

+ adição
- subtração
* multiplicação
/ divisão
^ ou ** exponenciação
x %% y módulo (x mod y) 5%%2 é 1
x %/% y divisão inteira 5%/%2 é 2

Prof. Ricardo Tavares - DEMAT - UFOP


Operadores lógicos
35

 < menor que


 <= menor que ou igual a
 > maior que
 >= maior que ou igual a
 == exatamente igual a
 != diferente
 !x negação de x
 x|y x OU y
 x&y xEy
 isTRUE(x) testa se X é Verdadeiro

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: vetor
36

 Vetor: Para o R, um vetor é qualquer


conjunto unidimensional de valores
(números, strings, lógicos,etc);
 Exemplos:
> lucro=c(500,70,1200,NA)
> porte=c("médio", "baixo", "alto", NA)
> faliu=c(FALSE, TRUE, FALSE, NA)
 NA é o código utilizado pelo R quando os
dados estão faltando (missing);
 > 1/0 retorna Inf e > -1/0 retorna -Inf
 > 0/0 retorna NaN

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: vetor
37

 Algumas funções importantes:


 c() e scan()
 length()
 paste()
 seq()
 rep()
 sample()
 factor() e gl()
 table() e prop.table()
 rbind() e cbind()
 Exemplos ...

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: vetor
38

 sort(): ordena os valores de um vetor

 rev(): coloca os valores de um vetor na ordem inversa

 order():retorna um vetor de inteiros contendo a


permutação que irá ordenar o objeto de entrada em
ordem crescente

 rank(): retorna os postos dos valores de um vetor

 unique(): retorna os valores de um vetor sem qualquer


repetição de valores

 duplicated(): retorna um vetor lógico indicando quais


elementos são duplicatas de elementos anteriores

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: vetor
39

 > ceiling(3.475) retorna 4


 > floor(3.475) retorna 3
 > trunc(5.99) retorna 5
 > round(3.475, digits=2) retorna 3.48

 > x="abcdef"
 > substr(x, 2, 4) retorna "bcd"

 > paste("x",1:3,sep="")
retorna c("x1","x2" "x3")
Prof. Ricardo Tavares - DEMAT - UFOP
Os objetos do R: matriz
40

 Matriz: Uma matriz é um objeto


bidimensional de mesmo modo
construído a partir da função matrix();

 Exemplos:
> notas=matrix(c(4,7,8,6,9,5), 2,3)

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: matriz
41

 Algumas funções importantes:


 is.matrix() e as.matrix()
 dim() e dimnames()
 nrow() e ncol()
 t() , diag() e det()
 apply()
 colMeans(), rowMeans() e sweep()
 %*%
 solve()

 As funções vistas em vetores são úteis para


matrizes;
 Exemplos ...

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: dataframe
42

 Dataframe: é uma estrutura


bidimensional de dados que aceita
colunas de modos diferentes (números,
strings, lógicos, etc). Sua função é
data.frame();

 Exemplos:
>bens=data.frame('Imóvel'=c('casa','apto',
'lote'),'Preço'= c(320000,280000,195000))

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: dataframe
43

 Algumas funções importantes:


 data.frame()

 names()

 row.names() e col.names()

 subset()

 str()

 summary()

 attach() e detach()
 read.table() e write.table()
 Exemplos ...

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: array
44

 Array: é uma estrutura similar ao de uma


matriz, mas com o número de dimensões
flexível. Sua função é array();

 Exemplos:
> turma = array(1:24, dim=c(3,4,2))

 O objeto turma é uma coleção de duas


matrizes 3x4;

 As funções usadas em vetores e matrizes


podem ser úteis para array;

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: listas
45

 Listas: é uma coleção de componentes


que podem ser de classes e tamanhos.
Sua função é list();

 Exemplos:
>natal=list(A=1, B=notas, C="Capital do
Sol", D=seq(1,10, length=20))

 Uma componente pode ser chamada pelo


nome ($) ou pela posição ([[ ]]);

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: listas
46

 Algumas funções importantes:


 list()

 summary()

 lapply()

 sapply()

 Exemplos ...

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: funções
47

 Funções: é um programa construído para


realizar tarefas repetitivas dentro do
programa principal. Sua função é function();
 Exemplos:
ufop=function(a,b)
{
soma=a+b
return(soma)
}
ufop(3,4)

Prof. Ricardo Tavares - DEMAT - UFOP


Os objetos do R: funções
48

becel=function(lances)
{
soma=sample(c(0,1), lances, replace = TRUE)
return(sum(soma)/lances*100)
}
> becel(lances=10)

 Se a função estiver em um arquivo, pode-se


ler o código dela através da função source();

Prof. Ricardo Tavares - DEMAT - UFOP


Outros comandos úteis
49

 class(), attr() e typeof()


 std()
 with() , split() , merge() e aggregate()
 cat() e print()
 rm() e options(scipen=20)
 union() e intersect()
 set.seed() e jitter()
 sys.time() , sys.Date() e sys.sleep()
 sink() , outer() e dput()
 rainbow(), heat.colors(), terrain.colors(), topo.colors(),
cm.colors(), colorRamp() e rgb()

 > as.Date(x, "%d/%m/%Y")


 #em que x="13/06/1977" vai converter para "1977-06-13";
 Qual a diferença entre as.POSIXct() e as.POSIXlt() ?

Prof. Ricardo Tavares - DEMAT - UFOP


Medidas descritivas
50

 mean(): média
 var(): variância
 sd(): desvio padrão
 median(): mediana
 quantile(): percentis
 min(): mínimo
 max(): máximo
 fivenum(): esquema dos cinco números
 summary(): resumo estatístico
 skewness() e kurtosis() - pacote moments

Prof. Ricardo Tavares - DEMAT - UFOP


Medidas descritivas
51

 Exemplo:
> renda = c(2650, 3350, 2600, 2650, 3150,
2900, 2350, 2700, 2650, 3150)
 Encontrar as medidas descritivas: média,
desvio padrão, quartis (1, 2 e 3), mínimo,
máximo, centil 5 e centil 95;
 Quantos valores são maiores que a
média?
 Qual o índice do maior rendimento?

Prof. Ricardo Tavares - DEMAT - UFOP


Alguns gráficos
52

 plot() diagrama de dispersão


 pairs() matriz de diagramas de dispersão
 hist() histograma
 boxplot() boxplot
 qqnorm() gráfico quantil-quantil normal
 qqplot() gráfico quantil-quantil genérico
 barplot() gráfico de barras
 pie() gráfico de setores
 dotchart() gráfico de pontos
 stem() ramo e folha
 persp() gráficos em perspectiva – pacote graphics
 contour() gráficos de contorno - pacote graphics
 xyplot() gráfico de dispersão - pacote lattice

Prof. Ricardo Tavares - DEMAT - UFOP


Alguns itens de gráfico
53

 abline() adiciona uma linha definida pela forma a + bx (ou


linha horizontal ou vertical: h=, v=)
 lines() adiciona linhas
 points() adiciona pontos
 box() adiciona caixas
 text() adiciona texto ao gráfico
 segments(x0,y0,x1,y1) adiciona uma linha do ponto
(x0,y0) ao ponto (x1, y1);
 arrows() adiciona setas entre pares de pontos
 title() adiciona um título
 legend() adiciona uma legenda
 axis() adiciona eixos
 locator() obtém coordenadas de pontos no gráfico
 identify(x,y) identifica pontos dentro do gráfico
 par() define os parâmetros gráficos

Prof. Ricardo Tavares - DEMAT - UFOP


Parâmetros gráficos
54

 mfrow: número de gráficos em uma


página. Ex.: mfrow=c(2,3) cria layout 2 x
3 preenchido linha por linha
 mfcol: similar ao mfrow, mas preenchido
coluna por coluna
 col: cor das linhas, símbolos, etc.
 col.axis: cor das anotações dos eixos
 col.lab: cor dos rótulos dos eixos
 col.main: cor do título principal

Prof. Ricardo Tavares - DEMAT - UFOP


Parâmetros gráficos
55

 pch: tipo de símbolo para os dados:


1=círculo, 2=triângulo, 3=sinal de mais, etc.
 cex: tamanho do texto
 cex.axis: tamanho do texto para os eixos
 cex.lab: tamanho do texto para os rótulos
dos eixos
 cex.main: tamanho do título principal
 lty: tipo de linha: 0=blanca, 1=sólida,
2=tracejada, 3=pontilhada, etc.
 lwd: espessura da linha

Prof. Ricardo Tavares - DEMAT - UFOP


Salvar/copiar um gráfico
56

 Para salvar um gráfico, basta clicar em


cima dele com o botão direito do mouse
e escolher salvar como;

 Para copiar um gráfico e colar num editor


de texto em seguida, faça o seguinte:
clicar em cima dele com o botão direito
do mouse e escolher copiar como;

Prof. Ricardo Tavares - DEMAT - UFOP


Salvar gráficos em .eps
57

 Como salvar um gráfico em .eps?


 Clique com o botão direito do mouse em cima
do gráfico e escolha “salvar como
postscript...”
 Outra opção é usar o comando:

postscript()
 Busque alternativas para .pdf e .jpg!
 Ver exemplos com gráficos no arquivo
ProgramaR.R;
Prof. Ricardo Tavares - DEMAT - UFOP
Distribuições de probabilidade
58

 As funções disponíveis no R para distribuições


de probabilidades compreendem duas partes:
 Um prefixo (primeira letra) determina a ação
tomada pela função
d – densidade de probabilidade
p – probabilidade acumulada
q – quantil
r – amostra aleatória
 Um sufixo (restante do nome) identifica a
distribuição;
 Exemplos:
 >pnorm(1.96, mean=0, sd=1)
 >qnorm(0.975, mean=0, sd=1)

Prof. Ricardo Tavares - DEMAT - UFOP


Distribuições de probabilidade
59

 Binomial: binom  Binomial Neg: nbinom


 Geométrica: geo  Hipergeo: hyper
 Poisson: pois  Qui-quadr: chisq
 Uniforme: unif  Gamma: gamma
 Normal: norm  Weibull: weibull
 Exponencial: exp  Cauchy: cauchy
 t: t  Log-normal: lnorm
 F: f  Logística: logis
 Beta: beta

Prof. Ricardo Tavares - DEMAT - UFOP


Distribuições de probabilidade
60

 Ver exemplos com probabilidade no


ProgramaR.R

Prof. Ricardo Tavares - DEMAT - UFOP


Inferência Estatística
61

 t.test() - Teste t-Student


 prop.test() Teste de Hip. com Proporções
 anova() - Análise de Variância
 fisher.test() - Teste exato de Fisher
 binom.test() - Teste Binomial exato
 var.test() - Teste F para comparar duas variâncias
 cor.test() - Teste de correlação
 shapiro.test() - Teste Shapiro-Wilk para normalidade
 bartlett.test() - Teste de homogeneidade de variâncias
 friedman.test() – Teste de Friedman
 wilcox.test() - Teste de Wilcoxon
 kruskal.test() - Teste Kruskal-Wallis
 chisq.test() - Teste X2
 ks.test() - Teste Kolmogorov-Smirnov

Prof. Ricardo Tavares - DEMAT - UFOP


Inferência Estatística
62

 Ver exemplo com Inferência no


ProgramaR.R

Prof. Ricardo Tavares - DEMAT - UFOP


Algumas simulações
63

 1) A distribuição da média amostral para


tamanhos de amostras 5, 50 e 500
usando amostras não aleatórias x
aleatórias;
 2) Construindo 50 intervalo de confiança
para a verdadeira proporção do número
de sucessos (cara) em 20 lançamentos
de uma moeda e a visualização gráfica
daqueles que não contêm o parâmetro;
 Confira no ProgramaR.R

Prof. Ricardo Tavares - DEMAT - UFOP


Análise de regressão linear
64

 lm(): ajusta modelos lineares.

 lm(formula, data, subset, weights, na.action,


method = "qr", model = TRUE, x = FALSE, y =
FALSE, qr = TRUE, singular.ok = TRUE,
contrasts = NULL, offset, ...)

 O comando lm() gera um objeto chamado fit;


 Veja também:
 coef, effects, residuals, fitted e confint.

Prof. Ricardo Tavares - DEMAT - UFOP


Gere código Latex a partir do R
65

> dados = read.table("dados_anova.txt",


header=TRUE)
> hba.aov=aov(hba~tgest,data=dados)
> summary(hba.aov)
> TukeyHSD(hba.aov, ordered = TRUE)
> plot(TukeyHSD(hba.aov))

# passando essa tab. anova para latex


> library(xtable)
> xtable(hba.aov)
Prof. Ricardo Tavares - DEMAT - UFOP
Outros pontos interessantes
66

 Visualização espacial de uma variável


que esteja disponível para cada
município de MG, por exemplo;

 A partir de um ajuste de modelo SARIMA


para os casos de Dengue em MG (2001-
2009), veja como é simples plotar a
previsão para 2010, inclusive com os
intervalos de confiança;

Prof. Ricardo Tavares - DEMAT - UFOP


Obrigado e divulgue o R!!!
67

 A melhor maneira de aprender o R é


resolvendo novos problemas e/ou desafios
com ele;

 O melhor software/linguagem é aquele que


você sabe trabalhar bem com ele;

 Seja bastante feliz com o ambiente R;

 Um abraço e o meu muito obrigado pela


oportunidade e espaço oferecidos ao R;

Prof. Ricardo Tavares - DEMAT - UFOP

Das könnte Ihnen auch gefallen