Post on 15-Apr-2017
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:\Programas\R ).
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:\Programas\R\R-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 Graphics
R 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.6
0.8
1.0
1.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.. . . ”