Anda di halaman 1dari 14

R (linguagem de programação)

Conteúdo

1 R (linguagem de programação)/Básico 1

2 R (linguagem de programação)/Introdução 2
2.1 Linguagem interpretada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Básico e pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 R (linguagem de programação)/Instalação 3
3.1 Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1.1 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1.2 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2 Carregando um programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

4 R (linguagem de programação)/Objetos 4
4.1 Vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1.1 A função c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1.2 Criação de vetores vazios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.1.3 rep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1.4 seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

5 R (linguagem de programação)/Matemática 6
5.1 Ajuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2 Valores errados ou impossíveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.3 Divisão e módulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.4 Operações com vetores, matrizes e arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

6 R (linguagem de programação)/Estruturas de controle 7


6.1 Condicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.2 Laços (loops) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6.3 Loops implícitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.4 Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.5 Tempo de processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.6 Funções semelhantes ao Unix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6.7 Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

7 R (linguagem de programação)/Distribuições de probabilidade 9

i
ii CONTEÚDO

7.1 Distribuição normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

8 R (linguagem de programação)/Gráficos 10
8.1 Gráficos simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.2 Fontes, contribuidores e licenças de texto e imagem . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.2.1 Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.2.2 Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.2.3 Licença . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Capítulo 1

R (linguagem de programação)/Básico

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 Zelan-
dia, 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).
R é 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.
O código fonte do R está disponível sob a licença GNU
GPL e as versões binárias pré-compiladas são fornecidas
para Windows, Macintosh, e muitos sistemas operacio-
nais Unix/Linux.
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.
Um conjunto de pacotes é incluído com a instalação de
R, com muito outros disponíveis na rede de distribuição
do R (em inglês CRAN).

1
Capítulo 2

R (linguagem de programação)/Introdução

R é, ao mesmo tempo, uma linguagem de programação e A maioria dos pacotes tem por objetivo análises estatís-
um pacote estatístico. Apesar de R ser usada, primaria- ticas, porém praticamente qualquer aplicativo que exista
mente, para análises estatísticas, ela é uma linguagem de pode ser portado para R. Assim, temos os pacotes fSeries
programação completa, capaz de realizar qualquer tarefa e tseries (séries temporais em finanças), lmtest (testes de
que outras linguagens realizam. modelos de regressão linear), fOptions (cálculos envol-
vendo opções), linprog (programação linear), tcltk (in-
terface gráfica usando o toolkit Tk), xlsReadWrite (ler e
escrever arquivos compatíveis com o Excel), rimage (pro-
2.1 Linguagem interpretada cessamento de imagens), etc.

R é uma linguagem interpretada. Há algum tempo atrás,


esta seria uma grande desvantagem em termos de perfor-
mance, porém, como os cálculos internos são feitos em
linguagens de baixo nível e altamente otimizados, pro-
gramas complexos escritos em R rodam até mais rápido
do que programas equivalentes escritos em linguagens te-
oricamente 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.

2.2 Básico e pacotes


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).

2
Capítulo 3

R (linguagem de programação)/Instalação

Este capítulo descreve a instalação do R e dos pacotes


básicos, e outros passos básicos para começar a usar.

3.1 Instalação
A instalação básica deve ser feita fora do R. A instala-
ção dos pacotes pode ser feita pelo próprio R. É impor-
tante prestar atenção na personalização ou não da insta-
lação: uma instalação feita por uma conta administra-
dora (root no Linux) estará disponível para todos usuá-
rios, mas uma instalação personalizada estará apenas dis-
ponível para esta conta.

3.1.1 Linux
A instalação em Linux é muito simples para distribuições
que estão atualizadas e tem gerenciadores de instalação
(yum, apt-get, etc).
Em distribuições que usam yum, basta:

yum -y install R-core

Em distribuições que usam aptitude, basta:

aptitude install r-base

3.1.2 Windows
Deve-se baixar o executável do site CRAN ou algum de
seus mirrors e rodá-lo. A instalação pode ser feita por
uma conta de usuário sem privilégio, ou por um admins-
trador.

3.2 Carregando um programa


Para carregar um programa escrito em linguagem texto,
basta comandar, no R:

> source(“nome do programa”)

A função inversa de source é dump.

3
Capítulo 4

R (linguagem de programação)/Objetos

Um objeto é qualquer coisa que pode ser associado (e • Dataframes: semelhante a matriz, mas com alguma
armazenado) em uma variável. estrutura a mais.
As variáveis em R não são predefinidas; elas assumem o • Classes: usadas na programação orientada a obje-
tipo do objeto que for atribuído a elas. tos.
Assim, uma instrução do tipo:

x <- 1 4.1 Vetores


Um vetor é uma lista de elementos sendo todos do mesmo
atribui a x o valor (inteiro) 1, e é perfeitamente válido
tipo.
reatribuir:

x <- 2.5 4.1.1 A função c


x <- NULL
A função que cria vetores a partir de escalares (ou veto-
res) é c:
Aqui, NULL é a variável vazia. x <- NULL não destrói
x (como pode ser visto escrevendo-se exists(“x”) - que re- > x <- c(1, 2, 3)
torna TRUE), mas faz x ter um valor que não é nada. cria uma variável x do tipo vetor (de inteiros) com três
Os principais tipos de objeto são: elementos.
Estes elementos são numerados a partir do um (como em
• Vetores: uma lista de elementos, sendo todos eles Basic, Pascal, etc) e não a partir do zero (como em C,
NULL, raw, lógico, inteiro, real, complexo, string, C++, etc):
lista ou expressão. Caso a lista seja criada com uma > x[1] [1] 1
mistura destes tipos, os mais simples serão conver-
Deve-se notar que não existe diferença entre um escalar
tidos para os mais complexos.
e um vetor de dimensão um:
• Matrizes: semelhante a vetores, mas em duas di- > y <- 1 > y [1] 1
mensões.
Este é um cuidado que deve ser tomado sempre ao
• Arrays: semelhantes a matrizes, mas podem ter trabalhar-se com vetores e matrizes: sempre que uma di-
mais dimensões. mensão se torna um, esta dimensão é colapsada.
A função c pode ser usada para concatenar vetores:
• Listas: semelhante a vetores, mas seus elementos
podem ser de tipos diferentes - inclusive outras lis- > x <- c(c(1, 2), c(10, 11)) > x [1] 1 2 10 11
tas.

• Funções: uma função é um objeto como qualquer 4.1.2 Criação de vetores vazios
outro - pode-se inclusive definir funções anônimas,
como nas linguagens funcionais. Basta declarar o tipo e colocar o tamanho entre parênte-
sis.
Estes tipos serão vistos mais adiante: Exemplos:
> numeric(5) # vetor de 5 zeros numéricos > integer(3) #
• Fatores: parecido com vetores, mas incluem níveis. vetor com 3 zeros inteiros

4
4.1. VETORES 5

4.1.3 rep
rep repete um elemento n vezes:
> x <- rep(0.5, 10) > x [1] 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
0.5 0.5
rep também pode ser usado para repetir um vetor:
> x <- rep(c(1,2), 3) > x [1] 1 2 1 2 1 2
rep também pode ser usado para repetir vetorialmente.
Isto é melhor explicado com um exemplo:
> x <- rep(c(10, 11), c(2, 3)) > x [1] 10 10 11 11 11
Neste exemplo, o primeiro elemento da repetição (2) foi
aplicado ao primeiro exemplo do vetor (10), e o segundo
elemento da repetição (3) ao segundo elemento do vetor
(11).

4.1.4 seq
seq cria um vetor que é uma sequência de números.
Quando o passo é um, pode-se usar :. Exemplos:
> seq(3, 5) > seq(3, 15, by=2) > 1:10 > (−10):(−5) # cui-
dao com os parêntesis! > 6:2 > seq(1, 1000, length=10) >
seq(1, 1000, length=9) # repare que a sequência assume
valores reais e não inteiros
Capítulo 5

R (linguagem de
programação)/Matemática

As operações matemáticas em R são muito semelhantes de execução dos programas, ao reescrever o código para
a quase todas outras linguagens de programação, com as pensar de forma vetorial.
operações binárias de soma (+), subtração (-), multipli-
Um vetor (matriz, array, etc) operado com outro vetor
cação (*), divisão (/ ), potência (^ ou **) e módulo (%%), (matriz, array, etc) de mesma dimensão faz a operação
e a operação unária do inverso aditivo (-).
elemento a elemento. Assim:
x <- c(1, 2, 3) y <- c(4, 5, 6) x * y
5.1 Ajuda cria um vetor formado pelos produtos dos elementos in-
dividuais de x e y, ou seja, c(1 * 4, 2 * 5, 3 * 6).
Se alguém ainda tem dúvida, pode obter ajuda com: Se um dos dois vetores tiver tamanho menor que o outro,
ele será replicado até atingir o tamanho do outro, e depois
?Arithmetic
a operação é feita. Assim, multiplicar um escalar por um
vetor é simplesmente escrito como lambda * v.
Como, para matrizes m1 e m2, m1 * m2 é o produto
5.2 Valores errados ou impossíveis elemento-a-elemento, a multiplicação de matrizes é feita
por m1 %*% m2.
R sempre executa as operações aritméticas. O resultado,
porém, só fará sentido se a operação também fizer. As- Por construção, as funções matemáticas usuais (seno, ex-
sim 1/0 retorna Inf (infinito), (−1)/0 retorna -Inf, 1/Inf ponencial, raiz quadrada, etc) se aplicam aos vetores, pre-
retorna 0, Inf - Inf retorna NaN, etc. NA e NaN absorvem servando a estrutura e gerando um resultado de mesmo
qualquer conta, com NA absorvendo NaN: tipo. Por exemplo:

NA * 0 # NA NaN * 0 # NaN NA - NaN # NA x <- 0:16 y <- sqrt(x) y


irá mostrar um vetor com as raizes quadradas dos núme-
ros de zero a dezesseis.
5.3 Divisão e módulo
A divisão é real (ou complexa); para obter a divisão in-
teira, usar x %/% y.
O módulo é implementado de forma metamticamente
correta, ou seja, (−1) %% 3 é 2 (e não −1, como em C e
outras linguagens que implementam o módulo de forma
errada).

5.4 Operações com vetores, matri-


zes e arrays
As operações aritméticas são aplicáveis a vetores, matri-
zes e arrays - aliás, esta é a forma de otimizar a velocidade

6
Capítulo 6

R (linguagem de programação)/Estruturas
de controle

Aqui, estruturas de controle se refere aos condicionais, Aqui cabe uma observação relevante: por ser uma lingua-
laços etc, assim como às funções. gem interpretada, o interpretador processa a linha até
que encontre o que parece ser seu fim. Então, um pedaço
de código como:
6.1 Condicionais x <- 1 # ou x <- 2 - teste com os dois valores if (x == 1)
y <- 2 else y <- 3
• Para obter ajuda sobre os controles condicionais dará erro. O motivo é que, ao processar a linha
(“se... então”, etc):
if (x == 1) y <- 2

> ?Control o interpretador acha que a instrução terminou neste


ponto, então a linha seguinte
O condicional mais básico é a estrutura “se... então... (se-
não...)": else y <- 2

if (condição) execução_principal else execu- é interpretada como uma linha isolada - e else não existe
ção_alternativa exceto como parte do if.

ou pode haver somente a condição para a execução prin- Para evitar este tipo de erro, deve-se colocar o código a
cipal: ser executado entre chaves - { e } depois dos ifs e elses.

if (condição) execução_principal if (condição) { execução_principal } else { execu-


ção_alternativa }
A condição do if é unidimensional, ou seja, deve conter
apenas um retorno booleano explícito ou derivado de uma • A função ifelse() é uma função com três argumentos:
expressão: o primeiro é a condição a ser testada (uma variável
lógica), e os dois seguintes são os valores assumidos
• x == y “x é igual a y” no caso verdadeiro e no caso falso. Note-se que a
condição pode ser uma variável lógica simples, ou
• x != y “x não é igual a y” um vetor.

• x > y “x é maior que y” • Neste exemplo, gera-se uma sequência de 1 a


10, e são zerados os valores entre 5 e 8:
• x < y “x é menor que y”
> x <- 1:10 > ifelse(x<5 | x>8, x, 0) [1] 1 2 3 4 0 0 0 0 9
• x >= y “x é maior ou igual a y”
10
• x <= y “x é menor ou igual a y”

Dentro da condição pode haver combinações de expres- 6.2 Laços (loops)


sões, desde que o conjunto respeite a unidimensionali-
dade da condição, usando os operadores: Em R existem três formas de fazer loops: for, repeat e
while.
• & ou && para E (AND)
• O comando for é o mais simples - mas pode parecer
• | ou || para OU (OR). estranho para quem está acostumado com a lingua-

7
8 CAPÍTULO 6. R (LINGUAGEM DE PROGRAMAÇÃO)/ESTRUTURAS DE CONTROLE

gem C. É preciso definir um vetor de valores, e dizer 6.6 Funções semelhantes ao Unix
que a variável que sofre o for está neste vetor:
• system() permite executar funções do sistema ope-
racional (DOS, unix, etc). Por exemplo, se existe
> for (k in 1:5){ + print(k) + } [1] 1 [1] 2 [1] 3 [1] 4 [1]
uma função no sistema operacional para converter
5
entre padrões de imagem, convert, que converte de
Note-se que, em quase todos os casos onde o for é usado, .ps para .png, pode-se chamá-la:
uma programação baseada em vetores é bem mais efici-
ente. system(“convert W:/toto.ps W:/toto.png”)

• Quando não for possível usar a instrução for, pode- • file.info() dá informações sobre um arquivo.
se usar break e while.
> file.info(“taille.txt”) size isdir mode mtime ctime atime
exe taille.txt 444 FALSE 666 2009-06-26 12:25:44
Nos dois exemplos abaixo são mostrados valores da dis- 2009-06-26 12:25:43 2009-06-26 12:25:43 no
tribuição normal padronizada, desde que eles sejam me-
Podem-se apagar arquivos com file.remove():
nores que um. A função cat() é usada para mostrar os
valores na tela. file.remove(dir(path="directoryname”, pattern="*.log”))
> repeat { + g <- rnorm(1) + if (g > 1.0) break +
cat(g,"\n”) + } −1.214395 0.6393124 0.05505484
−1.217408 > g <- 0 > while (g < 1){ + g <- rnorm(1) 6.7 Referências
+ cat(g,"\n”) + } −0.08111594 0.1732847 −0.2428368
0.3359238 −0.2080000 0.05458533 0.2627001
1.009195

6.3 Loops implícitos

A função apply (e suas variantes) é uma forma de usar


loops de forma eficiente. Seu uso será visto mais tarde.

6.4 Funções

Uma função é tratada como uma variável, cuja declaração


começa por
function(argumentos) { # corpo da funcao }
Acima, temos uma função anônima. Para dar um nome,
basta determinar que uma variável é igual a ela:
> fn <- function(){ + print(“hello”) + } > fn() [1] “hello”

6.5 Tempo de processamento

Em programas que consomem muito tempo, é importante


descobrir quais partes do código estão pesando.
As funções system.time() e proc.time() servem para isto.
system.time() retorna o tempo de CPU (CPU time)
> system.time(x<-rnorm(10^6)) [1] 1.14 0.07 1.83 0.00
0.00 > debut <- proc.time() > x <- rnorm(10^6) >
proc.time()-debut [1] 1.66 0.10 10.32 0.00 0.00
Capítulo 7

R (linguagem de
programação)/Distribuições de
probabilidade

Até agora R foi vista como uma linguagem de progra- dnorm é a função que dá a densidade da normal, ou seja,
mação comum. Este capítulo enfoca na especialidade da é a implantação da equação
linguagem: a estatística.
Para um bom entendimento deste capítulo, é recomendá-
vel um bom conhecimento de estatística; para isto con- f (x) = √1 exp(− (x − µ) )
2

2σ 2
sulte: σ 2π
Por exemplo, dnorm(1) retorna 0.2419707. Analoga-
• o livro Probabilidade e Estatística (avançado) mente, dnorm pode receber um vetor de parâmetros, as-
• o capítulo Estatística do livro Matemática elementar sim dnorm(seq(−1, 1, by=0.1)) gera todos valores da fun-
(mais simples) ção densidade de probabilidade para os valores entre −1
e 1 (um vetor de 21 valores).
O histograma, gerado acima por simulação, também pode
7.1 Distribuição normal ser facilmente obtido usando-se dnorm:
x <- seq(−6, 6, by=0.1) y <- dnorm(x) plot(x, y,
Em geral, para cada distribuição de probabilidade - e seria type="l”)
tentador dizer que para toda distribuição de probabilidade
que alguém tenha algum dia inventado - R possui quatro pnorm é a função que dá a função de probabilidade acu-
funções associadas. mulada da normal. Por exemplo, pnorm(1.96) é aproxi-
madamente 97,5%. pnorm também recebe um vetor, ou
Vejamos, por exemplo, a distribuição mais importante de seja, a sequência abaixo gera uma curva-S:
todas, a Distribuição normal.
x <- seq(−6, 6, by=0.1) y <- pnorm(x) plot(x, y,
rnorm é a função que simula variáveis normais. A forma type="l”)
de usar é:
Finalmente, qnorm é a inversa de pnorm. q vem de
x <- rnorm(n, mean, sd) quartil; para gerar o 1o quartil de uma normal de média
em que n é o tamanho da amostra (x será um vetor caso 5 e desvio-padrão 3, basta fazer qnorm(0.25, mean = 5,
n > 1), e mean e sd são parâmetros (opcionais) dando a sd = 3) (o valor é 2.976531). Analogamente, qnorm tam-
média e o desvio-padrão da normal. Se mean ou sd forem bém pode receber um vetor de probabilidades, assim, a
omitidos, serão usados os valores, respectivamente, de 0 sequência abaixo é a inversa da curva-S:
e 1. x <- seq(0.001, 0.999, length=1000) y <- qnorm(x)
Por exemplo: plot(x, y, type="l”)
x <- rnorm(sd = 2, n = 10)
gera um vetor com 10 valores independentes e identica-
mente distribuídos, com média zero e desvio-padrão 2.
Para ver o gerador de normais em ação, siga a sequência
abaixo:
x <- rnorm(1000) hist(x)

9
Capítulo 8

R (linguagem de programação)/Gráficos

Existem várias formas de fazer gráficos em R. As mais


simples são baseadas na função plot.

8.1 Gráficos simples


A função plot sempre inicia um gráfico novo, apagando
o gráfico anterior.
De modo elementar, plot recebe dois argumentos: um ve-
tor de absissas, e um vetor de ordenadas.
Por exemplo, para plotar o gráfico de 100 valores da fun-
ção seno (em graus), variando de −360 a 360 graus, po-
deriamos comandar:
xg <- (−360):360 # gera o vetor c(−360, −359, −358,
..., 360) yg <- sin(xg * pi / 180) # valores do seno (con-
vertendo de grau para radiano) plot(xg, yg) # mostra o
gráfico

10
8.2. FONTES, CONTRIBUIDORES E LICENÇAS DE TEXTO E IMAGEM 11

8.2 Fontes, contribuidores e licenças de texto e imagem


8.2.1 Texto
• R (linguagem de programação)/Básico Fonte: http://pt.wikibooks.org/wiki/R%20(linguagem%20de%20programa%C3%A7%C3%
A3o)/B%C3%A1sico?oldid=146154 Contribuidores: Albmont e He7d3r
• R (linguagem de programação)/Introdução Fonte: http://pt.wikibooks.org/wiki/R%20(linguagem%20de%20programa%C3%A7%
C3%A3o)/Introdu%C3%A7%C3%A3o?oldid=184051 Contribuidores: Albmont, He7d3r e He7d3r.bot
• R (linguagem de programação)/Instalação Fonte: http://pt.wikibooks.org/wiki/R%20(linguagem%20de%20programa%C3%A7%C3%
A3o)/Instala%C3%A7%C3%A3o?oldid=207824 Contribuidores: Albmont e He7d3r.bot
• R (linguagem de programação)/Objetos Fonte: http://pt.wikibooks.org/wiki/R%20(linguagem%20de%20programa%C3%A7%C3%
A3o)/Objetos?oldid=207826 Contribuidores: Albmont e He7d3r.bot
• R (linguagem de programação)/Matemática Fonte: http://pt.wikibooks.org/wiki/R%20(linguagem%20de%20programa%C3%A7%
C3%A3o)/Matem%C3%A1tica?oldid=207825 Contribuidores: Albmont e He7d3r.bot
• R (linguagem de programação)/Estruturas de controle Fonte: http://pt.wikibooks.org/wiki/R%20(linguagem%20de%20programa%
C3%A7%C3%A3o)/Estruturas%20de%20controle?oldid=275882 Contribuidores: Dadomingues, Albmont e He7d3r.bot
• R (linguagem de programação)/Distribuições de probabilidade Fonte: http://pt.wikibooks.org/wiki/R%20(linguagem%20de%
20programa%C3%A7%C3%A3o)/Distribui%C3%A7%C3%B5es%20de%20probabilidade?oldid=207821 Contribuidores: Albmont e
He7d3r.bot
• R (linguagem de programação)/Gráficos Fonte: http://pt.wikibooks.org/wiki/R%20(linguagem%20de%20programa%C3%A7%C3%
A3o)/Gr%C3%A1ficos?oldid=207823 Contribuidores: Albmont e He7d3r.bot

8.2.2 Imagens

8.2.3 Licença
• Creative Commons Attribution-Share Alike 3.0

Anda mungkin juga menyukai