Minicurso I
Análise Exploratória e Modelação com R
1. Introdução ao R
Amílcar Oliveira ; Teresa Oliveira
amilcar.oliveira@uab.pt teresa.oliveira@uab.pt
DCeT, Universidade Aberta & CEAUL, Universidade de Lisboa
Manaus, 12 a 15 de agosto, 2014
Tópicos
1. Introdução
2. Instalação do programa R
3. Os primeiros passos
4. Objetos
5. Funcionalidades
6. Manipulação de Dados
2
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
1. Introdução
 R é um sistema para computação estatística e gráficos. Consiste numa
linguagem e num ambiente de operação com gráficos, acesso a certas
funções do sistema e capacidade de executar comandos armazenados em
arquivos (scripts);
 Trata-se de uma aplicação de distribuição gratuita, código fonte aberto, faz
parte do GNU Project http://www.gnu.org/ , desenvolvido por Ross Ihaka
e Robert Gentleman na década de 90 a partir da linguagem S;
 Executável nos principais sistemas operativos: Linux, Macintosh e
Windows;
 Sistema gerido por rede mundial de investigadores;
 Instalação simples, linguagem acessível;
 Excelentes capacidades gráficas;
3
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
1. Introdução
 Permite fazer análises estatísticas de forma tão ou mais potente que
outros programas não gratuitos (SAS, SPSS, etc...);
 Permite importar dados de outros programas (Access, Excel, SPSS, SAS,
etc...);
 Conjunto integrado de ferramentas que permitem a manipulação e análise
de dados, o cálculo numérico e a produção e visualização de gráficos;
 Linguagem interpretada (os comandos são imediatamente executados);
 Linguagem orientada por objetos (os dados manipulados são armazenados
na memória ativa do computador na forma de objetos, que têm um nome
e aos quais se podem aplicar ações);
• Sempre que estivermos a referir-nos a um código ou a um output de texto
do R, usaremos a fonte Courier New.
4
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
1. Introdução (Páginas na Internet sobre o sistema R)
 http://www.r-project.org - Homepage do R, a partir desta
página podemos aceder a todas as outras páginas
relacionadas.
 http://cran.br.r-project.org/
O servidor mirror (espelho)
brasileiro (UFPr)
 http://cran.r-project.org/other-docs.html - documentos de
ajuda e manuais em formato pdf.
5
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
1. Introdução (Editores)
6
R Editor
Word Pad
Tinn R
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
7
Passo 1: Obter o ficheiro de instalação
Através da internet indo directamente à página do R em
http://www.r-project.org visualizamos:
No menu do lado esquerdo, na secção download clique em CRAN e de
seguida escolha um dos servidores disponíveis para a transferência do
ficheiro.
Clicando então sobre o endereço atrás indicado vamos para esta nova página.
Aqui devemos em primeiro lugar fazer o download do ficheiro com o Source
code numa pasta para mais tarde executarmos.
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
8
Clicando sobre o link R-3.1.1.tar.gz surgirá esta janela e agora podemos
optar por guardar o ficheiro numa pasta ( por exemplo c:ProgramasR ).
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
9
Clicando então em Guardar como devemos procurar a pasta de destino, como no
exemplo seguinte:
No final aparecerá a mensagem de transferência concluída.
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
10
No caso do sistema operativo utilizado ser Windows devemos então clicar sobre
Download R for Windows e seremos conduzidos a
Deve agora clicar na sub-directoria base para fazer a transferência do ficheiro
principal de instalação, ou em contrib para escolher outros packages extra
disponíveis. Pensemos agora apenas no caso da opção base para a instalação
principal do R ou em install R for the first time, caso de trate da primeira instalação.
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
11
Aparecerá então uma nova página, contendo para além do ficheiro de instalação
principal, outras informações que para a nossa tarefa atual não são relevantes.
Agora clique sobre Download R 3.1.1 for Windows
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
12
Para guardar o ficheiro clique na opção correspondente Guardar como e de seguida
seleccione a pasta para onde será guardado
Se optar pela execução do ficheiro inicia-se de imediato o Passo 2.
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
13
Passo 2: Instalação do R
Clique em Executar ou caso tenha o ficheiro de execução guardado numa pasta:
Procure o ficheiro R-3.1.1.tar.gz e descomprima-o para a pasta onde vai guardar o
programa, por exemplo ( c:ProgramasRR-3.1.1 ).
Procure agora o ficheiro de instalação R-3.1.1-win32.exe obtido atrás e execute-o.
Em primeiro lugar seleccione o idioma do programa de instalação e clique em OK.
Neste momento entrará no Assistente de instalação do R para Windows.
Leia as instruções e clique em Seguinte nos próximos quadros:
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
14
O R possui uma licença do tipo
GNU General Public Licence.
Pode ler o Contrato de Licença de
Uso e de seguida clique em
Seguinte.
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
15
Selecione as componentes a instalar e clique em Seguinte
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
16
Escolha o nome da pasta para o atalho que será criado no Menu Iniciar, ou aceite a
sugestão e clique em Seguinte
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
17
Durante a instalação deverá ver uma janela deste tipo
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
2. Instalação do programa R
18
E finalmente, a instalação foi realizada com sucesso. Parabéns.
Clique em Concluir para fechar o programa de instalação.
Agora, se tudo correu bem, o R está pronto a ser usado, e terá sido
criado um ícone no ambiente de trabalho ao qual pode recorrer
para entrar na área de trabalho do R.
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
3. Os primeiros passos (Como iniciar uma sessão?)
 Criar na área de trabalho uma nova pasta (por exemplo, TrabalhoR)
onde irão ser guardados os ficheiros de dados.
 Iniciar o R através do menu:
 Iniciar → Todos os programas → R → R 3.1.1
ou em alternativa, através
 Atalho criado no ambiente de trabalho
19
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
3. Os primeiros passos (Ambiente de trabalho)
20
Fig. 2 Ambiente de trabalho do Software R
R GraphicsR Console
Menu principal
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
• O R funciona fundamentalmente no modo “pergunta-resposta”;
• Os comandos (frases que se escrevem numa certa sintaxe) introduzem-se a seguir
à linha de comando ( > ) e são executados automaticamente ou após pressionar a
tecla Enter;
• Para selecionar comandos executados anteriormente usar: ↑ ou ↓
• Para percorrer a linha de comandos usar: ← ou →
• Colocar o cursor no início / fim da linha de comandos: Home / End ;
• Para terminar o R deve executar-se o comando q() ou fechar a janela da aplicação.
21
3. Os primeiros passos (Como funciona?)
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
• Para atribuirmos um valor a um objeto usa-se o operador <- ;
• O nome de um objeto pode ser escolhido usando letras e números,
combinações de letras e números. Ex: x<-2 , x2=c(1,2,3);
Pode ainda ser usado o ponto ( . ) Ex: a.1<-5 , mas na atribuição do
nome deve figurar sempre uma letra em primeiro lugar.
• O simbolo cardinal # é ignorado pelo R e deve preceder qualquer
comentário, Ex:
> x=rnorm(10,0,1) # gera 10 valores com
distribuição normal de média 0 e variância 1
• Usa operadores aritméticos, relacionais e lógicos;
• Usa funções matemáticas, funções estatísticas e distribuições de
probabilidade. 22
3. Os primeiros passos (Como funciona?)
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
Cálculo do valor duma expressão - o resultado é apresentado no visor e não
é registado em memória.
> 2+sqrt(5)-2/3
[1] 3.569401
> exp(3)+log(5/7) # log é logaritmo neperiano
[1] 19.74906
Atribuição – o resultado da expressão é atribuído a um objeto e não é
apresentado no visor.
> x <- 5 # <- é o operador de atribuição
> x
[1] 5
> y <- 2+3/4*7^2
> y
[1] 38.75 23
3. Os primeiros passos (Comandos Elementares)
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
 O comando help()
é habitualmente usado para obter informação sobre uma função específica.
Por exemplo, para obter informação sobre a função cos() pode utilizar-se
qualquer uma das opções:
> help(cos)
> help(“cos")
> ?cos
 O comando help.search()
permite pesquisar uma sequência de caracteres. Por exemplo:
> help.search(“linear regression")
 O comando help.start()
acede a uma página com informação diversa sobre o R.
 (Existe também Help no menu no ambiente de trabalho do R.)
24
3. Os primeiros passos (O comando help)
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
4. Objetos
 Os objetos são entidades que o R cria e manipula e que são guardados em
memória.
 O R funciona executando funções sobre objetos; (Exemplos: valores, vetores,
matrizes, ...)
 Cada objeto é caracterizado por um nome, conteúdo (sequência de
elementos do objeto) e atributos (que especificam certas características do
objeto).
 Todos os objetos têm dois atributos intrínsecos:
mode : tipo de elementos do objeto (numérico, alfanumérico, lógico, ...;
length : número de elementos do objeto.
Exemplo:
> x<-c(1,2,3,4,5)
> mode(x)
[1] "numeric"
> length(x)
[1] 5
25
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
4. Objetos
26
 Para listar os objetos que se encontram disponíveis pode utilizar-se
qualquer uma das seguintes opções:
> ls()
> objects()
 Para mostrar alguma informação sobre os objetos:
> ls.str()
 Para eliminar objectos:
> rm(objecto1, objecto2,...)
 Para eliminar todos os objectos:
> rm(list=ls())
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
4. Objetos (Workspace)
27
 Apresenta a coleção de objetos disponíveis numa sessão de trabalho, e pode
ser guardada num ficheiro com vista a sua utilização em futuras sessões.
 No final de cada sessão é perguntado ao utilizador se pretende guardar o
Workspace. Caso a resposta seja afirmativa, todos os objectos disponíveis
em memória são guardados no ficheiro “.RData”, na pasta de trabalho em
uso, podendo ser carregados na sessão do R seguinte.
Podem os especificar qual a nossa pasta de trabalho usando:
menu File → Change dir...
 Para importar um ficheiro de objectos (por exemplo o ficheiro “.RData”):
menu File → Load Workspace...
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
4. Objetos
28
 Vector
 Matrix
 List
 Data Frame
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
 Um vector é um conjunto ordenado de elementos do mesmo tipo
(mode) (valores numéricos, lógicos, alfanuméricos, ...);
 Uma das formas de criar um vetor no R é através da função c();
 c() é função designada função concatenação.
> x <- c(1.54, 1.72, 1.67, 1.65, 1.59)
> x
[1] 1.54 1.72 1.67 1.65 1.59
> y <- c(FALSE, FALSE, TRUE, TRUE, FALSE)
> y
[1] FALSE FALSE TRUE TRUE FALSE
> cores <-c (“Verde",“Vermelho",“Azul“, “Amarelo”)
> cores
[1] “Verde" “Vermelho" “Azul“ “Amarelo”
29
4. Objetos (Vector)
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
30
4. Objetos (Vector)
Um vector pode conter os símbolos especiais NA e NaN, que designam
respetivamente um valor desconhecido e um valor não definido.
> y <- c(NA, 53, 31, 15, 62)
> sqrt(c(-1,1,2))
[1] NaN 1.000000 1.414214
Warning message:
NaNs produced in: sqrt(c(-1, 1, 2))
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
31
4. Objetos
(outras formas de criar um vetor)
n1:n2 sequência de valores, de uma em uma unidade, começando em n1 e
terminando em n2
rep(v1,r) cria um vetor contendo r vezes o valor v1
seq(a1,a2,a3) cria uma sequência de números no intervalo [a1,a2],
separados por intervalos de a3 unidades
c(rep(a,b),rep(c,d)) concatena dois vetores em um, (b>a) e (d>c)
(manipulação de vetores)
rounded(v) arredonda o número ou vetor de números v para o inteiro
mais próximo
sort(v) apresenta os valores do vetor v por ordem crescente
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
32
4. Objetos (Matrix)
 Uma matrix é um conjunto de dados, todos do mesmo tipo, referenciados por
dois índices (i,j). Trata-se de uma generalização para duas dimensões de um
vector.
 Uma matrix é definida pelo número de linhas (n), numero de colunas (m) e um
conjunto de (n×m) valores.
 Com a função matrix() podemos criar matrizes.
> A<-matrix(c(2,3,4,2,1,2,5,2,3),nrow=3,ncol=3)
> A
[,1] [,2] [,3]
[1,] 2 2 5
[2,] 3 1 2
[3,] 4 2 3
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
33
4. Objetos (Matrix)
 Para os valores aparecerem antes dispostos por linhas, usa-se byrow=T
> A<-matrix(c(2,3,4,2,1,2,5,2,3),nrow=3,ncol=3,byrow=T)
> A
[,1] [,2] [,3]
[1,] 2 3 4
[2,] 2 1 2
[3,] 5 2 3
 Para obtermos a dimensão duma matriz: dim(A)
> dim(A)
[1] 3 3
Neste caso a matriz tem 3 linhas e 3 colunas
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
34
4. Objetos (Matrix)
 Um vetor pode facilmente ser transformado numa matriz
> V <- c(4,5,-2,2,-1,6) # V é um vetor
 E por sua vez uma matriz pode ser transformada num vetor
> as.vector(V)
[1] 4 5 -2 2 -1 6
> dim(V)<-c(3,2)
> V
[,1] [,2]
[1,] 4 2
[2,] 5 -1
[3,] -2 6
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
35
4. Objetos (Matrix - indexação)
 A[i,j] é o elemento de A que está na linha i e na coluna j
> A[2,1] # elementos da segunda linha e primeira coluna
da matriz A
 A[i,] é a linha i e A[,j] é a coluna j da matriz A. Estes objectos são do tipo
vector
> A[2,] # vetor constituido pelos elementos da segunda
linha
> A[,1] # vetor constituído pelos elementos da primeira
coluna
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
36
4. Objetos (Matrix - operações)
 As operacoes +, -, *, /, ^ são realizadas elemento a elemento.
 Todos os objetos do tipo matrix envolvidos na expressão devem ter o mesmo
atributo dim (isto é, o mesmo número de linhas e de colunas).
> A*A
[,1] [,2] [,3]
[1,] 4 9 16
[2,] 4 1 4
[3,] 25 4 9
Nota: esta operação A*A não é a habitual multiplicação de matrizes definida em
Álgebra Linear.
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
37
4. Objetos (Matrix - operações)
 O operador multiplicação de matrizes é %*%
 Se A e B são matrizes encadeadas dos tipos dim(A)=c(n,k) e dim(B)=c(k,m),
a matriz produto A%*%B é do tipo c(n,m).
> A%*%V
[,1] [,2]
[1,] 15 25
[2,] 9 15
[3,] 24 26
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
38
4. Objetos (algumas funções envolvendo matrizes)
 t(A) - calcula a transposta da matriz A;
 isSymmetric(A) - testa se a matriz A é simétrica;
 solve(A) calcula a inversa da matriz (quadrada) A;
 solve(A,b) - calcula a solução do sistema Ax=b, onde A é uma matriz
quadrada e b pode ser um vetor ou uma matriz;
 det(A) calcula o determinante da matriz (quadrada) A;
 eigen(A) calcula os valores e vetores próprios da matriz (quadrada) A;
 kronecker(A1,A2) calcula o produto de Kronecker (A1⊗A2)
 sum(diag(A)) calcula o traço da matriz A
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
39
4. Objetos (List)
 Listas (List) são estruturas genéricas e flexíveis que permitem armazenar
diversos formatos num unico objeto.
> lis1 <- list(A = 1:15, B = “ISTO É UMA MENSAGEM", C =
matrix(1:9,nrow = 3,byrow=T))
> lis1
$A
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
$B
[1] “ISTO É UMA MENSAGEM"
$C
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 9
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
40
4. Objetos (Data frame)
 Uma data frame é semelhante a uma matriz, mas na qual as colunas podem
ser de tipos diferentes.
> serras <- data.frame(nome=serras.nome,
altitude=serras.altitude)
> resultados <- data.frame(na=c(12345:12350),
+ turma=c(1,1,2,2,3,3),nota=c(10.1,8.2,12.5, 13.1,9.7,7.3))
 As data frame são casos especiais de listas onde as componentes têm o
mesmo número de elementos.
 Uma data frame pode ser considerada como uma tabela de uma base de
dados: cada coluna corresponde aos atributos (campos) e cada linha
corresponde a um registo da tabela.
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
41
4. Objetos (Data frame)
 Os elementos de uma data frame podem ser referidos (como numa matriz)
indicando a linha e a coluna:
> serras[4,1]
> serras[,2]
 Pode também ser usada a notação nomeDataFrame$nomeComponente
(como numa lista):
> serras$nome
> serras[[1]]
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
42
4. Objetos (Data frame – função attach)
 As consultas a data frames podem ser simplificadas utilizando a função
attach()
 A função attach() permite aceder directamente às colunas de uma data
frame, sem termos de indicar o nome dessa data frame.
> turma
Error: object "turma" not found
> attach(resultados)
> turma
[1] 1 1 2 2 3 3
> detach(resultados)
> turma
Error: object "turma" not found
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
5. Funcionalidades (Algumas funções usadas sobre vetores
numéricos)
 length(x) - número de elementos do vetor x;
 sum(x) - soma dos elementos do vetor x;
 prod(x)- produto dos elementos do vetor x;
 cumsum(x)- vetor cujos elementos são a soma acumulada dos
elementos do vetor x;
 cumprod(x)- vetor cujos elementos são o produto acumulado dos
elementos do vetor x;
 sort(x)- vetor com os elementos do vetor x ordenados por
ordem crescente.
43
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
Operadores
44
Operador Descrição
+
-
*
/
^
=
!=
<
>
<=
>=
&
|
!
Adição
Subtracção
Multiplicação
Divisão
Potenciação
Igual
Diferente
Menor que
Maior que
Menor ou igual a
Maior ou igual a
E lógico
OU lógico
Não lógico
Tabela 1. Operadores
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
Algumas funções matemáticas
45
Função Descrição
log(x)
log10(x)
exp(x)
sin(x)
cos(x)
tan(x)
asin(x)
acos(x)
atan(x)
sqrt(x)
min( )
max( )
abs(x)
Logaritmo (base e)
Logaritmo (base 10)
Exponencial
Seno
Coseno
Tangente
Arco seno
Arco coseno
Arco tangente
Raiz quadrada
Mínimo
Máximo
Valor absoluto de x
Tabela 2. Funções matemáticas
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
Funções Estatísticas
46
Função Descrição
mean(x)
sd(x)
var(x)
median(x)
quantile(x,p)
cor(x,y)
range(x)
length(x)
Média
Desvio padrão
Variância
Mediana
Quantil p
Correlação amostral entre X e Y
Equivalente a c(min(x),max(x))
Número elementos do vector x
Tabela 3. Funções estatísticas
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
Distribuições de Probabilidade
47
Distribuição Descrição
rnorm(n,mean,sd)
runif(x,min,max)
rt(x,df)
rf(x)
rexp(x)
rchisq(x,df)
rbinom(x,n,p)
rgeom(x,p)
rpois(x,lambda)
rhyper(x,m,n,k)
Normal
Uniforme
t de Student
F
Exponencial
Qui-Quadrado
Binomial
Geométrica
Poisson
Hipergeométrica
Tabela 4. Distribuições de Probabilidade
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
5. Funcionalidades (o R funcionando como calculadora)
48
A partir da linha de comando do R podemos somar …
> 3+2
[1] 5
... subtrair,
> 18-2
[1] 16
… multiplicar,
> 5*4
[1] 20
... dividir,
> 37/3
[1] 12.33333
ou realizar cálculos um pouco mais complexos como se fosse uma calculadora científica
> sin(2*pi/3)
[1] 0.8660254
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
5. Funcionalidades
49
Mas podem ocorrer erros quando o R não entende o que foi digitado, por exemplo:
> 5,1*3 # O R usa o “.” e não “,”
Error: syntax error
> coss(2.3)
Error: could not find function "coss“
Cálculos repetitivos podem tornar-se automáticos no R:
> x<-12
> x
[1] 12
> for (i in 1:4) {x+2->x}
> x
[1] 20
Uma sequência de numeros 1 a 8 pode ser obtida fazendo
> 1:8
[1] 1 2 3 4 5 6 7 8
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
5. Funcionalidades
50
Podemos designar x como a sequência 1 a 8
> x<-1:8
> x
[1] 1 2 3 4 5 6 7 8
e utilizar a sequência x
> x+2
[1] 3 4 5 6 7 8 9 10
Também é possível duas sequências
> y<-6:13
> y
[1] 6 7 8 9 10 11 12 13
> x+y
[1] 7 9 11 13 15 17 19 21
ou multiplicá-las.
> x
[1] 1 2 3 4 5 6 7 8
> y
[1] 6 7 8 9 10 11 12 13
> x*y
[1] 6 14 24 36 50 66 84 104
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
51
Podemos efetuar outro tipo de algumas operações matemáticas simples
utilizando o R.
Vejamos mais alguns exemplos:
20^2 + 21^2 + . . . + 30^2
Para obter a resposta devemos:
1) criar uma sequência de números de 20 a 30
2) elevar ao quadrado cada valor deste vetor
3) somar os elementos do vetor
E estes passos correspondem aos seguintes comandos
> (20:30)
[1] 20 21 22 23 24 25 26 27 28 29 30
> (10:20)^2
[1] [1] 400 441 484 529 576 625 676 729 784 841 900
> sum((20:30)^2)
[1] 6985
5. Funcionalidades
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
52
 De notar que apenas precisamos do último comando para obter a resposta,
no entanto é importante entender a sequência dos comandos,
especialmente quando estamos em fase de aprendizagem!
(b) log(1) + log(10) + log(100) + . . . + log(10000000000)
onde log representa o logaritmo neperiano.
 Resolvendo agora com apenas um comando:
> sum(sqrt(log(10^(0:10))))
[1] 34.09397
5. Funcionalidades
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
53
5. Funcionalidades (Gráficos de funções)
Vejamos o seguinte exemplo:
(b) 𝑓 𝑥 = 1 −
1
𝑥
cos 𝑥 , 𝑝𝑎𝑟𝑎 0 ≤ 𝑥 ≤ 100
> x <- seq(0, 100, l = 101)
> fx <- 1 - (1/x) * cos(x)
> plot(x, fx, type = "l")
0 20 40 60 80 100
0.60.81.01.2
x
fx
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
54
6. Manipulação de Dados
Podemos dar entrada dos dados no R de diferentes formas, consoante a
dimensão do conjunto de dados e/ou da existência dos mesmos numa base já
criada.
 Inserção de dados diretamente no R (através da criação de vetores)
Podemos dar entrada com dados definindo vetores com o comando c() ou
usando outras funções que criam vetores.
> x1<-c(12,13,14,12,11,10,9,15)
> x1
[1] 12 13 14 12 11 10 9 15
> x2 <- (1:5) * 100
> x2
[1] 100 200 300 400 500
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
55
 Usando a função scan()
Esta função permite a leitura dos dados diretamente a partir do ambiente R, ou
seja, coloca o R em modo prompt onde o utilizador deve digitar cada valor seguido
da tecla <ENTER>. Para terminar a entrada de dados basta digitar <ENTER>
duas vezes consecutivas. Vejamos o exemplo:
> x<-scan()
1: 2
2: 3 Para corrigir e/ou alterando dados
3: 2 Ex: substituir 6 por 2
4: 5
5: 6 > x[5]=2
6: 3 > x
7: 4 [1] 2 3 2 5 2 3 4 1 2 3
8: 1
9: 2
10: 3
11:
Read 10 items
> x
[1] 2 3 2 5 6 3 4 1 2 3
6. Manipulação de Dados
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
56
 Usando a função edit()
O comando edit(data.frame()) abre uma folha para a digitação dos
dados que são armazenados como data frames.
6. Manipulação de Dados
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
57
 Lendo os dados a partir de um ficheiro de texto
 A forma mais simples de fazer isso é usar dados em formato texto (arquivo do
tipo ASCII).
 Por exemplo, se os dados estão disponíveis numa folha de cálculo, como
EXCEL ou equivalente, podemos sempre na escolher a opção <SALVAR
COMO> e gravar os dados num ficheiro formato de texto.
 No R, usamos a função scan(), ou então a função read.table()para ler
os dados de um ficheiro de texto e armazenar no formato de uma data frame.
Exemplo 1
Como primeiro exemplo consideremos a importação para o R dos dados deste
ficheiro texto.
Clicando no link podemos visualizar o ficheiro. De seguida copiamos o ficheiro
para a área de trabalho (working directory do R). Para importar este ficheiro
usamos:
>exemplo1 <- read.table(“exemplo1.txt")
>exemplo1
6. Manipulação de Dados
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
58
 Lendo os dados a partir de um ficheiro de texto
Exemplo 2
Consideremos agora a importação para o R dos dados deste ficheiro de texto.
Clicando novamente no link podemos visualizar o ficheiro de dados.
De seguida copiamos o ficheiro para a área de trabalho (working directory do R).
ficheiro texto
De notar que este ficheiro é diferente do anterior na medida em que os nomes
das variáveis estão indicados na primeira linha.
Para que o R considere corretamente essa informação devemos adicionar o
argumento header=T.
Neste caso usamos então:
> exemplo2 <- read.table("exemplo2.txt", header=T)
> exemplo2
6. Manipulação de Dados
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
59
Exemplo 3
1º) Importar para o R os dados deste ficheiro texto.
2º) Clicar no link para visualizar o ficheiro.
3º) Copiar o ficheiro para área de trabalho (working directory do R).
Diferenças relativamente aos arquivos anteriores:
i) nomes das variáveis estão na primeira linha
ii) os campos agora são separados por :
iii) os carateres decimais estão separados por vírgula (,) mas o R usa o ponto
(.)
iv) para importar corretamente os dados devemos agora usar os argumentos
sep e dec:
> exemplo3 <- read.table("dados.csv", head=T, sep=":",
dec=",")
> exemplo3
6. Manipulação de Dados
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
60
MINICURSO - CIAEEAR
MANAUS (AM), 12-15 AGOSTO 2014
The Future of Statistics by Bradley Efron
AMSTAT News, September 2007
“My own life as a consulting biostatistician has been revolutionized in the space
of a single career.
Sitting in front of a powerful terminal and calling up R functions to all the dozen
advances and a lot more really does put seven-league boots an a statistician’s
feet.
Maybe 77-league boots lie in our immediate future.. . . ”

Análise exploratória e modelação com R parte 1

  • 1.
    Minicurso I Análise Exploratóriae Modelação com R 1. Introdução ao R Amílcar Oliveira ; Teresa Oliveira amilcar.oliveira@uab.pt teresa.oliveira@uab.pt DCeT, Universidade Aberta & CEAUL, Universidade de Lisboa Manaus, 12 a 15 de agosto, 2014
  • 2.
    Tópicos 1. Introdução 2. Instalaçãodo programa R 3. Os primeiros passos 4. Objetos 5. Funcionalidades 6. Manipulação de Dados 2 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 3.
    1. Introdução  Ré um sistema para computação estatística e gráficos. Consiste numa linguagem e num ambiente de operação com gráficos, acesso a certas funções do sistema e capacidade de executar comandos armazenados em arquivos (scripts);  Trata-se de uma aplicação de distribuição gratuita, código fonte aberto, faz parte do GNU Project http://www.gnu.org/ , desenvolvido por Ross Ihaka e Robert Gentleman na década de 90 a partir da linguagem S;  Executável nos principais sistemas operativos: Linux, Macintosh e Windows;  Sistema gerido por rede mundial de investigadores;  Instalação simples, linguagem acessível;  Excelentes capacidades gráficas; 3 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 4.
    1. Introdução  Permitefazer análises estatísticas de forma tão ou mais potente que outros programas não gratuitos (SAS, SPSS, etc...);  Permite importar dados de outros programas (Access, Excel, SPSS, SAS, etc...);  Conjunto integrado de ferramentas que permitem a manipulação e análise de dados, o cálculo numérico e a produção e visualização de gráficos;  Linguagem interpretada (os comandos são imediatamente executados);  Linguagem orientada por objetos (os dados manipulados são armazenados na memória ativa do computador na forma de objetos, que têm um nome e aos quais se podem aplicar ações); • Sempre que estivermos a referir-nos a um código ou a um output de texto do R, usaremos a fonte Courier New. 4 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 5.
    1. Introdução (Páginasna Internet sobre o sistema R)  http://www.r-project.org - Homepage do R, a partir desta página podemos aceder a todas as outras páginas relacionadas.  http://cran.br.r-project.org/ O servidor mirror (espelho) brasileiro (UFPr)  http://cran.r-project.org/other-docs.html - documentos de ajuda e manuais em formato pdf. 5 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 6.
    1. Introdução (Editores) 6 REditor Word Pad Tinn R MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 7.
    2. Instalação doprograma R 7 Passo 1: Obter o ficheiro de instalação Através da internet indo directamente à página do R em http://www.r-project.org visualizamos: No menu do lado esquerdo, na secção download clique em CRAN e de seguida escolha um dos servidores disponíveis para a transferência do ficheiro. Clicando então sobre o endereço atrás indicado vamos para esta nova página. Aqui devemos em primeiro lugar fazer o download do ficheiro com o Source code numa pasta para mais tarde executarmos. MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 8.
    2. Instalação doprograma R 8 Clicando sobre o link R-3.1.1.tar.gz surgirá esta janela e agora podemos optar por guardar o ficheiro numa pasta ( por exemplo c:ProgramasR ). MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 9.
    2. Instalação doprograma R 9 Clicando então em Guardar como devemos procurar a pasta de destino, como no exemplo seguinte: No final aparecerá a mensagem de transferência concluída. MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 10.
    2. Instalação doprograma R 10 No caso do sistema operativo utilizado ser Windows devemos então clicar sobre Download R for Windows e seremos conduzidos a Deve agora clicar na sub-directoria base para fazer a transferência do ficheiro principal de instalação, ou em contrib para escolher outros packages extra disponíveis. Pensemos agora apenas no caso da opção base para a instalação principal do R ou em install R for the first time, caso de trate da primeira instalação. MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 11.
    2. Instalação doprograma R 11 Aparecerá então uma nova página, contendo para além do ficheiro de instalação principal, outras informações que para a nossa tarefa atual não são relevantes. Agora clique sobre Download R 3.1.1 for Windows MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 12.
    2. Instalação doprograma R 12 Para guardar o ficheiro clique na opção correspondente Guardar como e de seguida seleccione a pasta para onde será guardado Se optar pela execução do ficheiro inicia-se de imediato o Passo 2. MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 13.
    2. Instalação doprograma R 13 Passo 2: Instalação do R Clique em Executar ou caso tenha o ficheiro de execução guardado numa pasta: Procure o ficheiro R-3.1.1.tar.gz e descomprima-o para a pasta onde vai guardar o programa, por exemplo ( c:ProgramasRR-3.1.1 ). Procure agora o ficheiro de instalação R-3.1.1-win32.exe obtido atrás e execute-o. Em primeiro lugar seleccione o idioma do programa de instalação e clique em OK. Neste momento entrará no Assistente de instalação do R para Windows. Leia as instruções e clique em Seguinte nos próximos quadros: MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 14.
    2. Instalação doprograma R 14 O R possui uma licença do tipo GNU General Public Licence. Pode ler o Contrato de Licença de Uso e de seguida clique em Seguinte. MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 15.
    2. Instalação doprograma R 15 Selecione as componentes a instalar e clique em Seguinte MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 16.
    2. Instalação doprograma R 16 Escolha o nome da pasta para o atalho que será criado no Menu Iniciar, ou aceite a sugestão e clique em Seguinte MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 17.
    2. Instalação doprograma R 17 Durante a instalação deverá ver uma janela deste tipo MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 18.
    2. Instalação doprograma R 18 E finalmente, a instalação foi realizada com sucesso. Parabéns. Clique em Concluir para fechar o programa de instalação. Agora, se tudo correu bem, o R está pronto a ser usado, e terá sido criado um ícone no ambiente de trabalho ao qual pode recorrer para entrar na área de trabalho do R. MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 19.
    3. Os primeirospassos (Como iniciar uma sessão?)  Criar na área de trabalho uma nova pasta (por exemplo, TrabalhoR) onde irão ser guardados os ficheiros de dados.  Iniciar o R através do menu:  Iniciar → Todos os programas → R → R 3.1.1 ou em alternativa, através  Atalho criado no ambiente de trabalho 19 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 20.
    3. Os primeirospassos (Ambiente de trabalho) 20 Fig. 2 Ambiente de trabalho do Software R R GraphicsR Console Menu principal MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 21.
    • O Rfunciona fundamentalmente no modo “pergunta-resposta”; • Os comandos (frases que se escrevem numa certa sintaxe) introduzem-se a seguir à linha de comando ( > ) e são executados automaticamente ou após pressionar a tecla Enter; • Para selecionar comandos executados anteriormente usar: ↑ ou ↓ • Para percorrer a linha de comandos usar: ← ou → • Colocar o cursor no início / fim da linha de comandos: Home / End ; • Para terminar o R deve executar-se o comando q() ou fechar a janela da aplicação. 21 3. Os primeiros passos (Como funciona?) MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 22.
    • Para atribuirmosum valor a um objeto usa-se o operador <- ; • O nome de um objeto pode ser escolhido usando letras e números, combinações de letras e números. Ex: x<-2 , x2=c(1,2,3); Pode ainda ser usado o ponto ( . ) Ex: a.1<-5 , mas na atribuição do nome deve figurar sempre uma letra em primeiro lugar. • O simbolo cardinal # é ignorado pelo R e deve preceder qualquer comentário, Ex: > x=rnorm(10,0,1) # gera 10 valores com distribuição normal de média 0 e variância 1 • Usa operadores aritméticos, relacionais e lógicos; • Usa funções matemáticas, funções estatísticas e distribuições de probabilidade. 22 3. Os primeiros passos (Como funciona?) MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 23.
    Cálculo do valorduma expressão - o resultado é apresentado no visor e não é registado em memória. > 2+sqrt(5)-2/3 [1] 3.569401 > exp(3)+log(5/7) # log é logaritmo neperiano [1] 19.74906 Atribuição – o resultado da expressão é atribuído a um objeto e não é apresentado no visor. > x <- 5 # <- é o operador de atribuição > x [1] 5 > y <- 2+3/4*7^2 > y [1] 38.75 23 3. Os primeiros passos (Comandos Elementares) MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 24.
     O comandohelp() é habitualmente usado para obter informação sobre uma função específica. Por exemplo, para obter informação sobre a função cos() pode utilizar-se qualquer uma das opções: > help(cos) > help(“cos") > ?cos  O comando help.search() permite pesquisar uma sequência de caracteres. Por exemplo: > help.search(“linear regression")  O comando help.start() acede a uma página com informação diversa sobre o R.  (Existe também Help no menu no ambiente de trabalho do R.) 24 3. Os primeiros passos (O comando help) MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 25.
    4. Objetos  Osobjetos são entidades que o R cria e manipula e que são guardados em memória.  O R funciona executando funções sobre objetos; (Exemplos: valores, vetores, matrizes, ...)  Cada objeto é caracterizado por um nome, conteúdo (sequência de elementos do objeto) e atributos (que especificam certas características do objeto).  Todos os objetos têm dois atributos intrínsecos: mode : tipo de elementos do objeto (numérico, alfanumérico, lógico, ...; length : número de elementos do objeto. Exemplo: > x<-c(1,2,3,4,5) > mode(x) [1] "numeric" > length(x) [1] 5 25 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 26.
    4. Objetos 26  Paralistar os objetos que se encontram disponíveis pode utilizar-se qualquer uma das seguintes opções: > ls() > objects()  Para mostrar alguma informação sobre os objetos: > ls.str()  Para eliminar objectos: > rm(objecto1, objecto2,...)  Para eliminar todos os objectos: > rm(list=ls()) MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 27.
    4. Objetos (Workspace) 27 Apresenta a coleção de objetos disponíveis numa sessão de trabalho, e pode ser guardada num ficheiro com vista a sua utilização em futuras sessões.  No final de cada sessão é perguntado ao utilizador se pretende guardar o Workspace. Caso a resposta seja afirmativa, todos os objectos disponíveis em memória são guardados no ficheiro “.RData”, na pasta de trabalho em uso, podendo ser carregados na sessão do R seguinte. Podem os especificar qual a nossa pasta de trabalho usando: menu File → Change dir...  Para importar um ficheiro de objectos (por exemplo o ficheiro “.RData”): menu File → Load Workspace... MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 28.
    4. Objetos 28  Vector Matrix  List  Data Frame MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 29.
     Um vectoré um conjunto ordenado de elementos do mesmo tipo (mode) (valores numéricos, lógicos, alfanuméricos, ...);  Uma das formas de criar um vetor no R é através da função c();  c() é função designada função concatenação. > x <- c(1.54, 1.72, 1.67, 1.65, 1.59) > x [1] 1.54 1.72 1.67 1.65 1.59 > y <- c(FALSE, FALSE, TRUE, TRUE, FALSE) > y [1] FALSE FALSE TRUE TRUE FALSE > cores <-c (“Verde",“Vermelho",“Azul“, “Amarelo”) > cores [1] “Verde" “Vermelho" “Azul“ “Amarelo” 29 4. Objetos (Vector) MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 30.
    30 4. Objetos (Vector) Umvector pode conter os símbolos especiais NA e NaN, que designam respetivamente um valor desconhecido e um valor não definido. > y <- c(NA, 53, 31, 15, 62) > sqrt(c(-1,1,2)) [1] NaN 1.000000 1.414214 Warning message: NaNs produced in: sqrt(c(-1, 1, 2)) MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 31.
    31 4. Objetos (outras formasde criar um vetor) n1:n2 sequência de valores, de uma em uma unidade, começando em n1 e terminando em n2 rep(v1,r) cria um vetor contendo r vezes o valor v1 seq(a1,a2,a3) cria uma sequência de números no intervalo [a1,a2], separados por intervalos de a3 unidades c(rep(a,b),rep(c,d)) concatena dois vetores em um, (b>a) e (d>c) (manipulação de vetores) rounded(v) arredonda o número ou vetor de números v para o inteiro mais próximo sort(v) apresenta os valores do vetor v por ordem crescente MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 32.
    32 4. Objetos (Matrix) Uma matrix é um conjunto de dados, todos do mesmo tipo, referenciados por dois índices (i,j). Trata-se de uma generalização para duas dimensões de um vector.  Uma matrix é definida pelo número de linhas (n), numero de colunas (m) e um conjunto de (n×m) valores.  Com a função matrix() podemos criar matrizes. > A<-matrix(c(2,3,4,2,1,2,5,2,3),nrow=3,ncol=3) > A [,1] [,2] [,3] [1,] 2 2 5 [2,] 3 1 2 [3,] 4 2 3 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 33.
    33 4. Objetos (Matrix) Para os valores aparecerem antes dispostos por linhas, usa-se byrow=T > A<-matrix(c(2,3,4,2,1,2,5,2,3),nrow=3,ncol=3,byrow=T) > A [,1] [,2] [,3] [1,] 2 3 4 [2,] 2 1 2 [3,] 5 2 3  Para obtermos a dimensão duma matriz: dim(A) > dim(A) [1] 3 3 Neste caso a matriz tem 3 linhas e 3 colunas MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 34.
    34 4. Objetos (Matrix) Um vetor pode facilmente ser transformado numa matriz > V <- c(4,5,-2,2,-1,6) # V é um vetor  E por sua vez uma matriz pode ser transformada num vetor > as.vector(V) [1] 4 5 -2 2 -1 6 > dim(V)<-c(3,2) > V [,1] [,2] [1,] 4 2 [2,] 5 -1 [3,] -2 6 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 35.
    35 4. Objetos (Matrix- indexação)  A[i,j] é o elemento de A que está na linha i e na coluna j > A[2,1] # elementos da segunda linha e primeira coluna da matriz A  A[i,] é a linha i e A[,j] é a coluna j da matriz A. Estes objectos são do tipo vector > A[2,] # vetor constituido pelos elementos da segunda linha > A[,1] # vetor constituído pelos elementos da primeira coluna MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 36.
    36 4. Objetos (Matrix- operações)  As operacoes +, -, *, /, ^ são realizadas elemento a elemento.  Todos os objetos do tipo matrix envolvidos na expressão devem ter o mesmo atributo dim (isto é, o mesmo número de linhas e de colunas). > A*A [,1] [,2] [,3] [1,] 4 9 16 [2,] 4 1 4 [3,] 25 4 9 Nota: esta operação A*A não é a habitual multiplicação de matrizes definida em Álgebra Linear. MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 37.
    37 4. Objetos (Matrix- operações)  O operador multiplicação de matrizes é %*%  Se A e B são matrizes encadeadas dos tipos dim(A)=c(n,k) e dim(B)=c(k,m), a matriz produto A%*%B é do tipo c(n,m). > A%*%V [,1] [,2] [1,] 15 25 [2,] 9 15 [3,] 24 26 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 38.
    38 4. Objetos (algumasfunções envolvendo matrizes)  t(A) - calcula a transposta da matriz A;  isSymmetric(A) - testa se a matriz A é simétrica;  solve(A) calcula a inversa da matriz (quadrada) A;  solve(A,b) - calcula a solução do sistema Ax=b, onde A é uma matriz quadrada e b pode ser um vetor ou uma matriz;  det(A) calcula o determinante da matriz (quadrada) A;  eigen(A) calcula os valores e vetores próprios da matriz (quadrada) A;  kronecker(A1,A2) calcula o produto de Kronecker (A1⊗A2)  sum(diag(A)) calcula o traço da matriz A MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 39.
    39 4. Objetos (List) Listas (List) são estruturas genéricas e flexíveis que permitem armazenar diversos formatos num unico objeto. > lis1 <- list(A = 1:15, B = “ISTO É UMA MENSAGEM", C = matrix(1:9,nrow = 3,byrow=T)) > lis1 $A [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $B [1] “ISTO É UMA MENSAGEM" $C [,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 40.
    40 4. Objetos (Dataframe)  Uma data frame é semelhante a uma matriz, mas na qual as colunas podem ser de tipos diferentes. > serras <- data.frame(nome=serras.nome, altitude=serras.altitude) > resultados <- data.frame(na=c(12345:12350), + turma=c(1,1,2,2,3,3),nota=c(10.1,8.2,12.5, 13.1,9.7,7.3))  As data frame são casos especiais de listas onde as componentes têm o mesmo número de elementos.  Uma data frame pode ser considerada como uma tabela de uma base de dados: cada coluna corresponde aos atributos (campos) e cada linha corresponde a um registo da tabela. MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 41.
    41 4. Objetos (Dataframe)  Os elementos de uma data frame podem ser referidos (como numa matriz) indicando a linha e a coluna: > serras[4,1] > serras[,2]  Pode também ser usada a notação nomeDataFrame$nomeComponente (como numa lista): > serras$nome > serras[[1]] MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 42.
    42 4. Objetos (Dataframe – função attach)  As consultas a data frames podem ser simplificadas utilizando a função attach()  A função attach() permite aceder directamente às colunas de uma data frame, sem termos de indicar o nome dessa data frame. > turma Error: object "turma" not found > attach(resultados) > turma [1] 1 1 2 2 3 3 > detach(resultados) > turma Error: object "turma" not found MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 43.
    5. Funcionalidades (Algumasfunções usadas sobre vetores numéricos)  length(x) - número de elementos do vetor x;  sum(x) - soma dos elementos do vetor x;  prod(x)- produto dos elementos do vetor x;  cumsum(x)- vetor cujos elementos são a soma acumulada dos elementos do vetor x;  cumprod(x)- vetor cujos elementos são o produto acumulado dos elementos do vetor x;  sort(x)- vetor com os elementos do vetor x ordenados por ordem crescente. 43 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 44.
    Operadores 44 Operador Descrição + - * / ^ = != < > <= >= & | ! Adição Subtracção Multiplicação Divisão Potenciação Igual Diferente Menor que Maiorque Menor ou igual a Maior ou igual a E lógico OU lógico Não lógico Tabela 1. Operadores MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 45.
    Algumas funções matemáticas 45 FunçãoDescrição log(x) log10(x) exp(x) sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) sqrt(x) min( ) max( ) abs(x) Logaritmo (base e) Logaritmo (base 10) Exponencial Seno Coseno Tangente Arco seno Arco coseno Arco tangente Raiz quadrada Mínimo Máximo Valor absoluto de x Tabela 2. Funções matemáticas MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 46.
    Funções Estatísticas 46 Função Descrição mean(x) sd(x) var(x) median(x) quantile(x,p) cor(x,y) range(x) length(x) Média Desviopadrão Variância Mediana Quantil p Correlação amostral entre X e Y Equivalente a c(min(x),max(x)) Número elementos do vector x Tabela 3. Funções estatísticas MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 47.
    Distribuições de Probabilidade 47 DistribuiçãoDescrição rnorm(n,mean,sd) runif(x,min,max) rt(x,df) rf(x) rexp(x) rchisq(x,df) rbinom(x,n,p) rgeom(x,p) rpois(x,lambda) rhyper(x,m,n,k) Normal Uniforme t de Student F Exponencial Qui-Quadrado Binomial Geométrica Poisson Hipergeométrica Tabela 4. Distribuições de Probabilidade MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 48.
    5. Funcionalidades (oR funcionando como calculadora) 48 A partir da linha de comando do R podemos somar … > 3+2 [1] 5 ... subtrair, > 18-2 [1] 16 … multiplicar, > 5*4 [1] 20 ... dividir, > 37/3 [1] 12.33333 ou realizar cálculos um pouco mais complexos como se fosse uma calculadora científica > sin(2*pi/3) [1] 0.8660254 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 49.
    5. Funcionalidades 49 Mas podemocorrer erros quando o R não entende o que foi digitado, por exemplo: > 5,1*3 # O R usa o “.” e não “,” Error: syntax error > coss(2.3) Error: could not find function "coss“ Cálculos repetitivos podem tornar-se automáticos no R: > x<-12 > x [1] 12 > for (i in 1:4) {x+2->x} > x [1] 20 Uma sequência de numeros 1 a 8 pode ser obtida fazendo > 1:8 [1] 1 2 3 4 5 6 7 8 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 50.
    5. Funcionalidades 50 Podemos designarx como a sequência 1 a 8 > x<-1:8 > x [1] 1 2 3 4 5 6 7 8 e utilizar a sequência x > x+2 [1] 3 4 5 6 7 8 9 10 Também é possível duas sequências > y<-6:13 > y [1] 6 7 8 9 10 11 12 13 > x+y [1] 7 9 11 13 15 17 19 21 ou multiplicá-las. > x [1] 1 2 3 4 5 6 7 8 > y [1] 6 7 8 9 10 11 12 13 > x*y [1] 6 14 24 36 50 66 84 104 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 51.
    51 Podemos efetuar outrotipo de algumas operações matemáticas simples utilizando o R. Vejamos mais alguns exemplos: 20^2 + 21^2 + . . . + 30^2 Para obter a resposta devemos: 1) criar uma sequência de números de 20 a 30 2) elevar ao quadrado cada valor deste vetor 3) somar os elementos do vetor E estes passos correspondem aos seguintes comandos > (20:30) [1] 20 21 22 23 24 25 26 27 28 29 30 > (10:20)^2 [1] [1] 400 441 484 529 576 625 676 729 784 841 900 > sum((20:30)^2) [1] 6985 5. Funcionalidades MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 52.
    52  De notarque apenas precisamos do último comando para obter a resposta, no entanto é importante entender a sequência dos comandos, especialmente quando estamos em fase de aprendizagem! (b) log(1) + log(10) + log(100) + . . . + log(10000000000) onde log representa o logaritmo neperiano.  Resolvendo agora com apenas um comando: > sum(sqrt(log(10^(0:10)))) [1] 34.09397 5. Funcionalidades MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 53.
    53 5. Funcionalidades (Gráficosde funções) Vejamos o seguinte exemplo: (b) 𝑓 𝑥 = 1 − 1 𝑥 cos 𝑥 , 𝑝𝑎𝑟𝑎 0 ≤ 𝑥 ≤ 100 > x <- seq(0, 100, l = 101) > fx <- 1 - (1/x) * cos(x) > plot(x, fx, type = "l") 0 20 40 60 80 100 0.60.81.01.2 x fx MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 54.
    54 6. Manipulação deDados Podemos dar entrada dos dados no R de diferentes formas, consoante a dimensão do conjunto de dados e/ou da existência dos mesmos numa base já criada.  Inserção de dados diretamente no R (através da criação de vetores) Podemos dar entrada com dados definindo vetores com o comando c() ou usando outras funções que criam vetores. > x1<-c(12,13,14,12,11,10,9,15) > x1 [1] 12 13 14 12 11 10 9 15 > x2 <- (1:5) * 100 > x2 [1] 100 200 300 400 500 MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 55.
    55  Usando afunção scan() Esta função permite a leitura dos dados diretamente a partir do ambiente R, ou seja, coloca o R em modo prompt onde o utilizador deve digitar cada valor seguido da tecla <ENTER>. Para terminar a entrada de dados basta digitar <ENTER> duas vezes consecutivas. Vejamos o exemplo: > x<-scan() 1: 2 2: 3 Para corrigir e/ou alterando dados 3: 2 Ex: substituir 6 por 2 4: 5 5: 6 > x[5]=2 6: 3 > x 7: 4 [1] 2 3 2 5 2 3 4 1 2 3 8: 1 9: 2 10: 3 11: Read 10 items > x [1] 2 3 2 5 6 3 4 1 2 3 6. Manipulação de Dados MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 56.
    56  Usando afunção edit() O comando edit(data.frame()) abre uma folha para a digitação dos dados que são armazenados como data frames. 6. Manipulação de Dados MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 57.
    57  Lendo osdados a partir de um ficheiro de texto  A forma mais simples de fazer isso é usar dados em formato texto (arquivo do tipo ASCII).  Por exemplo, se os dados estão disponíveis numa folha de cálculo, como EXCEL ou equivalente, podemos sempre na escolher a opção <SALVAR COMO> e gravar os dados num ficheiro formato de texto.  No R, usamos a função scan(), ou então a função read.table()para ler os dados de um ficheiro de texto e armazenar no formato de uma data frame. Exemplo 1 Como primeiro exemplo consideremos a importação para o R dos dados deste ficheiro texto. Clicando no link podemos visualizar o ficheiro. De seguida copiamos o ficheiro para a área de trabalho (working directory do R). Para importar este ficheiro usamos: >exemplo1 <- read.table(“exemplo1.txt") >exemplo1 6. Manipulação de Dados MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 58.
    58  Lendo osdados a partir de um ficheiro de texto Exemplo 2 Consideremos agora a importação para o R dos dados deste ficheiro de texto. Clicando novamente no link podemos visualizar o ficheiro de dados. De seguida copiamos o ficheiro para a área de trabalho (working directory do R). ficheiro texto De notar que este ficheiro é diferente do anterior na medida em que os nomes das variáveis estão indicados na primeira linha. Para que o R considere corretamente essa informação devemos adicionar o argumento header=T. Neste caso usamos então: > exemplo2 <- read.table("exemplo2.txt", header=T) > exemplo2 6. Manipulação de Dados MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 59.
    59 Exemplo 3 1º) Importarpara o R os dados deste ficheiro texto. 2º) Clicar no link para visualizar o ficheiro. 3º) Copiar o ficheiro para área de trabalho (working directory do R). Diferenças relativamente aos arquivos anteriores: i) nomes das variáveis estão na primeira linha ii) os campos agora são separados por : iii) os carateres decimais estão separados por vírgula (,) mas o R usa o ponto (.) iv) para importar corretamente os dados devemos agora usar os argumentos sep e dec: > exemplo3 <- read.table("dados.csv", head=T, sep=":", dec=",") > exemplo3 6. Manipulação de Dados MINICURSO - CIAEEAR MANAUS (AM), 12-15 AGOSTO 2014
  • 60.
    60 MINICURSO - CIAEEAR MANAUS(AM), 12-15 AGOSTO 2014 The Future of Statistics by Bradley Efron AMSTAT News, September 2007 “My own life as a consulting biostatistician has been revolutionized in the space of a single career. Sitting in front of a powerful terminal and calling up R functions to all the dozen advances and a lot more really does put seven-league boots an a statistician’s feet. Maybe 77-league boots lie in our immediate future.. . . ”