Introdução ao
Valeska Andreozzi
valeska.andreozzi at fc.ul.pt
Centro de Estatística e Aplicações da Universidade de Lisboa, Portugal
Lisboa, 2012
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
1 / 89
Objetivos do curso
Apresentar, de forma simples e acessível, as várias funções do R.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
2 / 89
Programa
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
3 / 89
Programa
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
3 / 89
Programa
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
3 / 89
Programa
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
3 / 89
Programa
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
3 / 89
Programa
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
3 / 89
Programa
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
3 / 89
Programa
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
3 / 89
Introdução
Sumário
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
4 / 89
Introdução
FAQ
FAQ
O que é o R?
O R é um sistema desenvolvido a partir da linguagem S (que também é usada
numa versão comercial, o S-Plus), que tem suas origens nos laboratórios da
AT&T no final dos anos 80. Em 1995 dois professores de estatística da
Universidade de Auckland, na Nova Zelândia, iniciaram o "Projeto R", com o
intuito de desenvolver um programa estatístico poderoso baseada em S, e de
domínio público.
1
2
3
4
5
Ler e realizar operações sobre os dados
Realizar computações
Conduzir análises estatísticas e
Dispor os resultados
Experimentar e implementar novos algoritmos
Um ambiente de programação para análise de dados e construção de gráficos.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
5 / 89
Introdução
FAQ
FAQ
Com o R posso utilizar menus para fazer análises estatísticas, como no SPSS,
SAS e S-Plus?
Não.
O R em versão para Windows é até provido de menus, mas todos são
usados para realizar tarefas não estatísticas (como atualizar a versão ou
salvar um gráfico).
Todas as funções estatísticas que acompanham o R devem ser chamadas a
partir do cursor do programa (seja digitando um comando ou copiando e
colando um comando previamente digitado).
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
6 / 89
Introdução
FAQ
FAQ
O fato do R não possuir menus não seria uma desvantagem em relação a
outros pacotes estatísticos?
Depende.
Muitos irão certamente interpretar esse fato como uma desvantagem, mas
que na verdade é uma vantagem forte do R.
A utilização do R para realizar análises estatísticas exige muito mais do
que simplesmente apertar alguns botões em série e dar alguns cliques no
mouse: para trabalhar dados com o R é preciso PENSAR e ENTENDER
o que se está fazendo.
Ao contrário de muitos pacotes estatísticos clássicos, o R permite uma
grande flexibilidade em relação às funções estatísticas pré-existentes, i.e.,
as funções são "editáveis", além da possibilidade de você mesmo poder
criar as suas próprias funções personalizadas (como será mostrado mais
tarde).
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
7 / 89
Introdução
FAQ
FAQ
Mas será que ninguém ainda desenvolveu um R com menus?
Existe uma biblioteca, desenvolvida pelo John Fox, chamada Rcmdr que
possui menus.
Para utilizar basta instalá-la e carregar com o comando require(Rcmdr)
e o menu se abrirá automaticamente.
Atençao: Note que o Rcmdr não provê acesso a toda funcionalidade do R
mas simplesmente a alguns procedimentos estatísticos mais usuais.
Maiores informações sobre esta biblioteca podem ser encontradas na
página do Rcmdr
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
8 / 89
Introdução
FAQ
FAQ
Quanto custa para ter uma cópia oficial do R?
Não custa nada: ele é de graça MESMO, ou seja, ninguém precisa gastar
mais me mil euros, o que seria necessário para comprar o módulo básico
do SPSS, por exemplo;
nem ser obrigado a cometer um pequeno delito para usar o R.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
9 / 89
Introdução
FAQ
FAQ
Se ninguém está ganhando dinheiro para manter o R atualizado, como posso
ter certeza que se trata de um produto confiável?
Esta é uma outra vantagem do R: o Projeto R consiste em uma
colaboração internacional de vários pesquisadores que se comunicam
através de uma eficiente lista de discussão pela Internet.
Com isso, não só bugs (defeitos de programação) são detectados e
corrigidos, como também novos módulos contendo métodos estatísticos
recentemente implementados são regularmente disponibilizados e
atualizados na rede.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
10 / 89
Introdução
FAQ
FAQ
O que são esses módulos adicionais?
Os módulos adicionais funcionam da seguinte forma: um pesquisador em
algum lugar do mundo precisou desenvolver uma aplicação numa área que
não é coberta nem pelo módulo básico nem pelos módulos de
colaboradores existentes.
O que esse pesquisador faz é desenvolver o que é chamada de uma
biblioteca para o R com as funções que ele criou e utilizou,
disponibilizando-a na rede. A vantagem é que a biblioteca pode ser usada
por diferentes pessoas, que irão eventualmente reportar erros nas funções,
que podem então ser atualizadas pelo seu criador.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
11 / 89
Introdução
Como obter o R
Como obter uma cópia do R?
Pela homepage
www.r-project.org
Passo-a-passo da homepage
1
2
3
4
5
Selecione, no menu Download, Packages a esquerda da tela, a opção
CRAN (Comprehensive R Archive Network)
Selecione o mirror, por exemplo UK
Selecione seu sistema operacional Download R for Windows
Selecione o subdiretório base
Selecione o programa Download R 2.14.2 for Windows e guarde no seu
disco.
Tutorial para instalação
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
12 / 89
Introdução
Como obter o R
Passeando pela Homepage do R
www.r-project.org
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
13 / 89
Introdução
Referências
Referências
Para iniciar, consulte:
Tutorial em português do Prof Paulo Justiniano (supporting member ) em
formato html ou pdf. (Muito do material desse curso foi baseado em suas
notas de aula.)
Tutorial para instalação
Bioestatística
Análise de dados epidemiológicos
Tutorial da Faculdade de Economia do Universidade do Porto
Lista completa de manuais, tutoriais em diversas línguas
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
14 / 89
Introdução
Operações Básicas
Inicializando o R
Iniciar uma sessão de R
Clicar no ícone do R que se encontra no Desktop do seu computador.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
15 / 89
Introdução
Operações Básicas
Operações aritméticas
> 3+7
[1] 10
> 3-7
[1] -4
> 3*7
[1] 21
> 3/7
[1] 0.4285714
> 3^7
[1] 2187
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
16 / 89
Introdução
Operações Básicas
Operações aritméticas
E se quisermos calcular o log2 8 = 3?
> log(8,base=2)
[1] 3
E a raiz quadrada de 25?
> sqrt(25)
[1] 5
ou
> 25^(1/2)
[1] 5
Cuidado com a ordem das operações
> 25^1/2
[1] 12.5
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
17 / 89
Introdução
Operações Básicas
Algumas funções
Função
sqrt()
abs()
exp()
log10()
log()
sin() cos() tan()
asin() acos() atan()
sin() cos() tan()
gamma()
factorial()
choose()
Valeska Andreozzi (CEAUL)
Descrição
raiz quadrada
valor absoluto
exponencial
logaritmo na base 10
Logaritmo na base e
funções trigonométricas
funções trigonométricas inversas
funções trigonométricas
função Gamma de Euler
fatorial (n!)
n!
)
número de combinações ( x!(n−x)!
Introdução ao R
Lisboa, 2011
18 / 89
Introdução
Operações Básicas
Sintaxe de uma função
Vamos aproveitar esse exemplo para explicar algumas características
básicas das funções disponíveis no R. Todas têm a forma:
> função (argumento(s) obrigatório(s), argumento(s) opcional(is))
Sendo que os argumentos opcionais podem ter um valor padrão (default)
pré-estabelecido ou não. Os argumentos estarão sempre entre parênteses
sendo separados por vírgula.
Veja o que acontece quando deixamos o segundo argumento em branco:
> log(8)
[1] 2.079442
Não houve mensagem de erro, mas o resultado é diferente do obtido
anteriormente através do comando log(8,base=2). O que terá
acontecido? Bem, se não houve queixa do programa quanto ao segundo
argumento, ele deve ter um valor pré-estabelecido.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
19 / 89
Introdução
Operações Básicas
Sintaxe de uma função
Tenha cuidado com a ordem dos argumentos quando o seus respectivos
nomes não são mencionados
> log(8,2)
[1] 3
> log(2,8)
[1] 0.3333333
A ordem não é importante quando o nome do argumento é mencionado
> log(base=2,x=8)
[1] 3
> log(x=8,base=2)
[1] 3
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
20 / 89
Introdução
Operações Básicas
Argumentos de uma função
Para listar os argumentos de uma função
> args(log)
function (x, base = exp(1))
NULL
ou através do help
> ?log
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
21 / 89
Introdução
Operações Básicas
Argumentos de uma função
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
22 / 89
Introdução
Criação de um objeto
Criação de um objecto
Vamos criar um objeto chamado x
> x <- 3
<- é o símbolo de atribuição (assignment)
Para ver o que se encontra num objeto, basta listá-lo
> x
[1] 3
O R faz diferenciação entre maiúsculas e minúsculas (case sensitive)
> X
Error: object "X" not found
Outro exemplo:
> y <- x*6
> y
[1] 18
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
23 / 89
Introdução
Criação de um objeto
Criação de um objecto
Vamos criar um objeto chamado x com um conteúdo diferente
> x <- "banana"
> x
[1] "banana"
Onde está a diferença?
> x <- banana
Error: Object "banana" not found
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
24 / 89
Introdução
Criação de um objeto
Criação de um objecto
E se o objeto banana existisse?
> banana <- 7
> banana
[1] 7
> x <- banana
> x
[1] 7
Foi colocado no objeto x primeiramente o número 3, depois a palavra
banana e por fim o número 7, quando copiamos o conteúdo do objeto
banana para x.
Repare que as substituições de conteúdo do objeto x foram feitas sem
nenhuma cerimônia pelo R.
Isso pode ser um problema no R: ele não pergunta se você quer ou não
substituir o conteúdo de um objeto por outro.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
25 / 89
Introdução
Criação de um objeto
Função c()
No R, para entrar com vários números (ou nomes, ou qualquer outro
grupo de coisas), precisamos usar uma função para dizer ao programa que
os valores serão combinados em um único vetor.
> x <- c(1,2,3,4,5)
> x
[1] 1 2 3 4 5
> x <- c("banana", "laranja", "tangerina")
> x
[1] "banana"
"laranja"
"tangerina"
> banana <- 7
> x<-c(banana,8,9)
> x
[1] 7 8 9
> x<-c(banana,"laranja")
> x
[1] "7"
"laranja"
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
26 / 89
Introdução
Criação de um objeto
Valores faltantes e especiais
NA Not Available, denota dados faltantes. Note que deve utilizar
maiúsculas.
NaN Not a Number, denota um valor que não é representável por um
número.
Inf e -Inf mais ou menos infinito.
> c(-1, 0, 1)/0
[1] -Inf NaN Inf
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
27 / 89
Introdução
Criação de um objeto
Nomes reservados
O R, como qualquer outra linguagem, possui nomes reservados, isto é, nomes
que não podem ser utilizados para objetos por terem um significado especial
na linguagem. São eles:
FALSE Inf NA NaN NULL TRUE
break else for function if
in next repeat while
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
28 / 89
Como pedir ajuda
Sumário
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
29 / 89
Como pedir ajuda
Ajuda
Existem várias formas de se pedir ajuda no R.
Help html
A forma mais fácil é selecionar o
menu Help > Html Help. A
seguir, o seu browser da internet
abrirá e você deverá selecionar o
link Search Engine and
Keywords e só depois poderá
fazer sua pesquisa escrevendo a
palavra chave ou o nome da
função, caso saiba. Tente
procurar o help da função mean.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
30 / 89
Como pedir ajuda
Ajuda
Conhecendo o nome da função
Se conhecemos o nome da função podemos usar o comando help() no prompt:
> help(mean)
Ou se preferir basta usar o ponto de interrogação antes do nome da função,
como mostra o exemplo abaixo
> ?mean
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
31 / 89
Como pedir ajuda
Ajuda
Busca por palavra-chave
Caso não conheçamos o nome da função podemos utilizar o comando
help.search() e pedir ajuda sobre um tópico, que ocorrerá em dois
passos. O primeiro é descobrir as funções que mencionam o tópico em
questão.
> help.search("cox")
Outra janela dentro do R se abrirá com o resultado da busca, listando o
nome da função, o pacote no qual ela se encontra e uma pequena
descrição.
O segundo passo é utilizar o ponto de interrogação para obter informação
sobre a função que escolher dentro daqueles listados pelo comando
help.search()
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
32 / 89
Como pedir ajuda
Ajuda
Conteúdo do help
As páginas do help html estão,
em geral, organizadas da
seguinte forma:
1
Nome da função e o pacote ao
qual pertence entre parênteses
2
Descrição
3
Sintaxe (usage)
4
Definição dos argumentos
5
Detalhes
6
O que retorna (value)
7
Notas
8
Referencias Bibliográficas
9
Comandos ou objectos
relacionados (see also)
10
Exemplos
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
33 / 89
Como pedir ajuda
Ajuda
Ajuda especializado
É comum alguns autores de bibliotecas disponibilizarem um tutorial em pdf
que pode ser aberto direto do R através do comando vignette()
?vignette
vignette(all = TRUE)
vignette("grid")
v1 <- vignette("grid")
print(v1)
edit(v1)
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
34 / 89
Filosofia de trabalho no R
Sumário
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
35 / 89
Filosofia de trabalho no R
Filosofia de trabalho no R
Características do R
O R é uma linguagem orientada a objeto. Tudo para o R é um objeto e
que podem ser de vários tipos. Veremos mais tarde.
O R é uma linguagem vetorial, e portanto capaz de operar vetores e
matrizes diretamente sem a necessidade de loops.
Nome dos objetos
Os nomes para os objectos do Rpodem ser qualquer combinação de letras,
números e símbolos como o (_) e o (.), mas devem começar com uma
letra.
Os objetos criados no R ficam guardados na memória
Podemos gravar estes objectos num arquivo com a terminação .RData
(por default)
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
36 / 89
Filosofia de trabalho no R
Filosofia de trabalho no R
Os comandos são guardados num ficheiro .Rhistory
Os comandos podem ser recuperados e voltados a entrar usado as teclas
de ↑ e ↓ ?
Comandos errados podem ser abandonados com a tecla <Esc>
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
37 / 89
Filosofia de trabalho no R
Filosofia de trabalho no R
Os comandos
Os comandos já digitados podem ser visualizados numa janela à parte com
a função history().
O número de entradas mostradas, por default, são 25. Para ver todas
pode-se introduzir
> history(max.show=Inf)
> # mostra todos os comandos inseridos desde o ínicio da sessão
O símbolo # serve para introduzir um comentário no arquivo de comandos
do R
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
38 / 89
Filosofia de trabalho no R
Filosofia de trabalho no R
A melhor forma de trabalhar no R é utilizar um editor de texto para
guardar seus comandos e já sem erros.
Uma forma simples é abrir o editor do R.
Menu File > New scrip
Vantagem desse editor é que está dentro do R e para executar os comandos
basta pressionar <ctrl+r> numa linha ou num bloco de linhas.
Salve com extensão .r (Menu File > Save )
Outros editores de texto alternativos
Crimson, TINN-R
Podem-se usar os shortcuts habituais de copy e paste <Ctrl+c>, <Ctrl+v>
Ambiente integrado para o R
Rstudio
Conselho: Não utilize o notepad ou Word
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
39 / 89
Filosofia de trabalho no R
Filosofia de trabalho no R
Se um texto estiver selecionado na área de trabalho do R, pode-se fazer
um paste direto do texto selecionando com o shortcut <Ctrl+x>
Para apagar os comandos e os resultados do ecrã, pode-se usar o shortcut
<Ctrl+L>
Para fechar janelas (por exemplo, de help ou dos gráficos), pode-se usar o
shortcut <Ctrl+F4>
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
40 / 89
Filosofia de trabalho no R
Filosofia de trabalho no R
É conveniente criar uma pasta de trabalho (folder /diretório) própria para
cada projeto onde deverão estar todos os arquivos de dados e onde serão
guardados os resultados do R (dados exportados e gráficos)
Inicie o R na pasta de trabalho.
1
2
3
4
5
6
Abra o R
Mude a pasta de trabalho no menu File > ChangeDir.... Escolha a pasta
na qual se encontra os seus dados.
Também pode optar em mudar a paste de trabalho através do comando
> setwd("C:/Projetos/Pasta de Trabalho")
E para verificar em que paste estamos trabalhando, utilize
> getwd()
Ao fechar o R guarde a seção de trabalho, ou mesmo durante sua análise,
no menu File > Save Workspace...
Ná próxima vez que quiser continuar a trabalhar no projeto, basta ir direto
ao diretório e fazer um duplo clique no arquivo .RData que está gravado na
sua pasta de trabalho
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
41 / 89
Bibliotecas
Sumário
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
42 / 89
Bibliotecas
Como instalar uma biblioteca?
Lista de bibliotecas
http://cran.r-project.org/web/packages/
No R
1
2
3
Selecione no Menu Package a opção Install package(s)... e depois
escolha as bibliotecas. Utilize a tecla <CTRL> para escolher mais que uma
biblioteca.
ou através da linha de comando
> install.packages("nome da biblioteca")
ou descarregue o arquivo zip da página das bibliotecas e depois no R,
selecione no Menu Package a opção Install package(s) from local zip
files....
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
43 / 89
Objetos
Sumário
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
44 / 89
Objetos
Objetos
Objeto é um termo geral para tudo o que têm permanência.
Tudo o que está do lado direito do símbolo de atribuição (<- ) é um
objeto.
Tipos de objetos:
1
2
3
4
5
vetor (vector )
matriz e array (matriz array )
data.frame
lista (list )
função (function )
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
45 / 89
Objetos
Vetores
Vetores
É o tipo de objeto mais comum
> x<-c(10.39,9.64,10.34,4.17,8.19,4.43,7.40,8.64,13.50,5.37)
> x
[1] 10.39 9.64 10.34 4.17 8.19 4.43 7.40 8.64 13.50 5.37
> x + 2
[1] 12.39 11.64 12.34
> x * 2
[1] 20.78 19.28 20.68
6.17 10.19
6.43
9.40 10.64 15.50
7.37
8.34 16.38
8.86 14.80 17.28 27.00 10.74
> sqrt(x)
[1] 3.223352 3.104835 3.215587 2.042058 2.861818 2.104757 2.720294
[8] 2.939388 3.674235 2.317326
> rev(x)
[1] 5.37 13.50
8.64
Valeska Andreozzi (CEAUL)
7.40
4.43
8.19
Introdução ao R
4.17 10.34
9.64 10.39
Lisboa, 2011
46 / 89
Objetos
Vetores
Vetores
> length(x)
[1] 10
#tamanho do vetor
> is.vector(x)
[1] TRUE
> is.matrix(x)
[1] FALSE
> is.numeric(x)
[1] TRUE
> is.character(x)
[1] FALSE
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
47 / 89
Objetos
Vetores
Índice de Vetores
Os colchetes (parênteses reto) [] são usados para indicar seleção de elementos
e a função which() retorna as posições do vetor que atendem uma condição.
> x[1]
[1] 10.39
> x[3:4]
[1] 10.34
4.17
> x>10
[1] TRUE FALSE
TRUE FALSE FALSE FALSE FALSE FALSE
TRUE FALSE
> which(x>10)
[1] 1 3 9
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
48 / 89
Objetos
Vetores
Índice de Vetores
Outro exemplo
> y<-which(x>11)
> y
[1] 9
#posição em que x>11
> x[y] #valor de x na posição que atende a condição
[1] 13.5
> x[x>13]
[1] 13.5
> x[-length(x)]
# todos exceto o ultimo elemento
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
49 / 89
Objetos
Vetores
Operação com Vetores
> x <- 1:10
> x + 2
[1] 3 4 5
6
> x * 2
[1] 2
8 10 12 14 16 18 20
4
6
7
8
9 10 11 12
> sqrt(x)
[1] 1.000000 1.414214 1.732051 2.000000 2.236068 2.449490 2.645751
[8] 2.828427 3.000000 3.162278
> x <- 1:10
> rev(x)
[1] 10 9 8
7
6
Valeska Andreozzi (CEAUL)
5
4
3
2
1
Introdução ao R
Lisboa, 2011
50 / 89
Objetos
Vetores
Operação com Vetores
Operação com dois vetores
> x <- 1:10
> y <- 21:30
> x+y
[1] 22 24 26 28 30 32 34 36 38 40
> x <- 1:10
> y <- c(1,2)
> x+y
[1] 2 4 4
6
6
8
8 10 10 12
> x <- 1:10
> y <- c(1,2,1)
> x + y
[1] 2 4 4 5 7 7 8 10 10 11
Warning message:
In x + y : longer object length is not a multiple of shorter object length
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
51 / 89
Objetos
Vetores
Funções seq e rep
Criar uma sequência e um vetor de valores repetidos
> x5 <- seq(0, 1, len = 11)
> x5
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> x6 <- rep(1, 5)
> x6
[1] 1 1 1 1 1
> rep(c(1, 2),times=3)
[1] 1 2 1 2 1 2
> rep(c(1, 2),each=3)
[1] 1 1 1 2 2 2
> rep(c(1, 2), times=c(3, 5))
[1] 1 1 1 2 2 2 2 2
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
52 / 89
Objetos
Vetores
Tipo de vetores
numérico (numeric)
inteiro (integer )
lógico (logical )
alfanumérico ou caracter (character )
fator (factor )
Exemplo:
> x<-1:10
> class(x)
[1] "integer"
> y<-x>2
> y
[1] FALSE FALSE
> class(y)
[1] "logical"
TRUE
Valeska Andreozzi (CEAUL)
TRUE
TRUE
TRUE
Introdução ao R
TRUE
TRUE
TRUE
TRUE
Lisboa, 2011
53 / 89
Objetos
Vetores
Tipo de vetores
Uma função particularmente útil para criar vetores de caracteres é paste().
Examine os seguintes comandos.
> paste("aluno", 2)
[1] "aluno 2"
> paste(letters[1:8], 2, sep = "")
[1] "a2" "b2" "c2" "d2" "e2" "f2" "g2" "h2"
> rep(paste("aluno", 1:3, sep = ""), c(4, 4, 3))
[1] "aluno1" "aluno1" "aluno1" "aluno1" "aluno2" "aluno2" "aluno2"
[8] "aluno2" "aluno3" "aluno3" "aluno3"
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
54 / 89
Objetos
Vetores
Tipo de vetores
Fatores (Factors)
São usados para armazenar dados categóricos.
Por exemplo, suponha que temos dados de um grupo de pessoas e
queremos armazenar a informação sobre o sexo dos indivíduos.
Pode-se usar um código numérico como 0 para homens e 1 para mulheres
ou pode-se usar um código na forma de caracter como ’H’ para homens e
’M’ para mulheres. Mas em ambos casos deve-se usar um factor.
> c5 <> c5
[1] "M"
> c5 <> c5
[1] "M"
> f5 <> f5
[1] M F
Levels:
c("M","F","F","F","M","M")
"F" "F" "F" "M" "M"
c("M","F","F","F","M","M")
"F" "F" "F" "M" "M"
factor(c5)
F F M M
F M
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
55 / 89
Objetos
Vetores
Tipo de vetores
Fatores (Factors)
Note que fatores são mostrados de forma semelhante mas não identica aos
vetores alfanuméricos.
Os valores dos fatores são impressos sem aspas e os níveis do fator são
também impressos.
As categorias (níveis) de um fator podem ser vistas usando a função
levels()
> levels(f5)
[1] "F" "M"
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
56 / 89
Objetos
Vetores
Tipo de vetores
Fatores (Factors)
Os níveis de um fator podem ser facilmente modificados assinalando um
novo vetor alfanumérico aos níveis do fator:
> levels(f5) <- c("Female","Male")
> f5
[1] Male
Female Female Female Male
Levels: Female Male
Male
Uma das coisas que se pode fazer com um fator é tabular os números em
cada categoria usando a função table() :
> table(f5)
f5
Female
Male
3
3
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
57 / 89
Objetos
Matrizes
Matrizes
Matrizes são objetos em que os elementos estão arrumados em linhas e
colunas (coordenadas)
Os elementos de uma matriz são sempre do mesmo tipo (ou numérico ou
caracter, nunca ambos)
Criando uma matriz
> x <- matrix(c(1,2,3,4,5,6,7,8,9,10,11,12), ncol=3)
> x
[,1] [,2] [,3]
[1,]
1
5
9
[2,]
2
6
10
[3,]
3
7
11
[4,]
4
8
12
> is.numeric(x)
[1] TRUE
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
58 / 89
Objetos
Matrizes
Matrizes
Criando uma matriz
> y<-matrix(letters[1:10],ncol=2)
> y
[,1] [,2]
[1,] "a" "f"
[2,] "b" "g"
[3,] "c" "h"
[4,] "d" "i"
[5,] "e" "j"
> is.character(y)
[1] TRUE
> y<-matrix(letters[1:10],ncol=2,byrow=T)
> y
[,1] [,2]
[1,] "a" "b"
[2,] "c" "d"
[3,] "e" "f"
[4,] "g" "h"
[5,] "i" "j"
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
59 / 89
Objetos
Matrizes
Matrizes
Criando uma matriz com as funções cbind() e rbind() que juntam (colam)
colunas e linhas, respectivamente
> x<-matrix(1:12,ncol=3)
> x
[,1] [,2] [,3]
[1,]
1
5
9
[2,]
2
6
10
[3,]
3
7
11
[4,]
4
8
12
> y <- cbind(x,1:4) # adicionando uma nova coluna..
> y
[,1] [,2] [,3] [,4]
[1,]
1
5
9
1
[2,]
2
6
10
2
[3,]
3
7
11
3
[4,]
4
8
12
4
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
60 / 89
Objetos
Matrizes
Matrizes
> y <- rbind(y,c(99,99,99,99)) # adicionando uma nova linha...
> y
[,1] [,2] [,3] [,4]
[1,]
1
5
9
1
[2,]
2
6
10
2
[3,]
3
7
11
3
[4,]
4
8
12
4
[5,]
99
99
99
99
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
61 / 89
Objetos
Matrizes
Matrizes
Para verificar a dimensão de uma matriz usamos a função dim() :
> x<-matrix(1:13,nrow=4,ncol=3)
Warning message:
In matrix(1:13, nrow = 4, ncol = 3) :
data length [13] is not a sub-multiple or multiple
of the number of rows [4]
> x
[,1] [,2] [,3]
[1,]
1
5
9
[2,]
2
6
10
[3,]
3
7
11
[4,]
4
8
12
> dim(x)
[1] 4 3
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
62 / 89
Objetos
Matrizes
Índices de uma matriz
Selecionando...
o elemento da segunda linha e terceira coluna
> x[2,3]
[1] 10
os elementos das três primeiras linhas da segunda coluna
> x[1:3,2]
[1] 5 6 7
todos os elementos da terceira coluna
> x[,3]
[1] 9 10 11 12
os elementos da primeira e terceira linha de todas as colunas
> x[c(1,3),]
[,1] [,2] [,3]
[1,]
1
5
9
[2,]
3
7
11
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
63 / 89
Objetos
Matrizes
Operação com matrizes
Multiplicar por constante, somar constante, elevar ao quadrado, tirar a
raiz quadrada de todos os elementos de uma matriz
x<-matrix(1:12,ncol=3)
x
x*2
x^2
x+2
sqrt(x)
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
64 / 89
Objetos
Matrizes
Operação com matrizes
Operações com duas matrizes (operações feitas elemento a elemento)
> y<-matrix(c(1,2,3),nrow=4,ncol=3,byrow=T)
> y
[,1] [,2] [,3]
[1,]
1
2
3
[2,]
1
2
3
[3,]
1
2
3
[4,]
1
2
3
> x+y
[,1] [,2] [,3]
[1,]
2
7
12
[2,]
3
8
13
[3,]
4
9
14
[4,]
5
10
15
> x*y
[,1] [,2] [,3]
[1,]
1
10
27
[2,]
2
12
30
[3,]
3
14
33
[4,]
4
16
36
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
65 / 89
Objetos
Matrizes
Operação com matrizes
Multiplicação matricial
> x
[,1] [,2] [,3]
[1,]
1
5
9
[2,]
2
6
10
[3,]
3
7
11
[4,]
4
8
12
> dim(x)
[1] 4 3
> z<-matrix(c(1,2),nrow=3,ncol=2,byrow=T)
> z
[,1] [,2]
[1,]
1
2
[2,]
1
2
[3,]
1
2
> dim(z)
[1] 3 2
Valeska Andreozzi (CEAUL)
Introdução ao R
> x%*%z
[,1] [,2]
[1,]
15
30
[2,]
18
36
[3,]
21
42
[4,]
24
48
Lisboa, 2011
66 / 89
Objetos
Data frames
Data frames
data frames são objetos equivalentes a um banco de dados que você
provavelmente já viu em outros formatos (e.g. SPSS, dbf, Excel, Access,
Epinfo)
ou seja, trata-se de uma tabela de dados onde as colunas são as variáveis
e as linhas são os registros.
Diferentemente dos vetores e matrizes, um data frame pode conter
colunas com dados de diferentes tipos (numérico, caracter, etc)
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
67 / 89
Objetos
Data frames
Data frames
Vejamos um exemplo do R (estudo caso controle de câncer endometrial)
library(Epi) #carregando uma biblioteca
data() #lista dos banco de dados disponíveis para serem carregados
?bdendo
#help do banco de dados bdendo
data(bdendo) #carrega os dados para a memória do R
names(bdendo) #nome das variáveis (colunas)
dim(bdendo) # dimensão do banco de dados (#linhas,#colunas)
head(bdendo) # lista as 6 primeiras linhas
View(bdendo) #abre o banco dentro do R
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
68 / 89
Objetos
Data frames
Índices de um data frame
Os índices funcionam igualmente aos da matriz
Mas com uma vantagem: podemos usar o nome das variáveis
Vejamos alguns exemplos
#criar um data frame com as 10 primeiras linhas de bdendo
dados<-bdendo[1:10,]
#listar o banco
dados
#listar a primeira linha da variável hyp
dados[1,4]
#listar todos os registros da variável agegrp
dados[,12]
#listar todas as variáveis do segundo registro
dados[2,]
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
69 / 89
Objetos
Data frames
Índices de um data frame
Mais exemplos utilizando o nome das variáveis
#listar todos os registros da variável hyp
dados$hyp
#listar os 3 primeiros registros da variável set e age3
dados[1:3,c("set","age3")]
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
70 / 89
Objetos
Data frames
Índices de um data frame: exercício
Agora vocês, utilizando o data frame dados, faça:
1
listar a variavel duration
2
3
4
5
6
7
quantos registros possuem o banco de dados?
listar os três primeiro registros
listar o último registro
criar um novo objeto chamado dados2 que contenha os últimos cinco
registros das 3 últimas variáveis
criar um novo objeto chamado dados3 que contenha todos os registros
que tenham age acima da média de age
criar um novo objeto chamado dados4 que contenha todos os registros
que tenham duration abaixo da mediana de duration
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
71 / 89
Objetos
Lista
Lista
As listas são usadas para combinar diferentes objetos em um único objeto.
Podemos juntar vetores, matrizes, números e/ou caracteres e até mesmo
outras listas um único objeto lista.
Os objetos do tipo lista são mais utilizados como resultados de função.
As listas são construídas com a função list().
Aqui vai um exemplo simples:
> person <- list(age=21,name="Fred",score=c(65,78,55))
> person
$age:
[1] 21
$name:
[1] "Fred"
O objeto person contém três
outros objetos vetores (age,
name, score ) com diferentes
tipos de conteúdos (númericos e
caracteres) e tamanhos.
$score:
[1] 65 78 55
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
72 / 89
Objetos
Lista
Lista
Os componentes da lista são introduzidos usando a forma usual nome=arg
de atribuir argumentos em uma função.
Cada elemento da lista pode ser acessado individualmente por seu nome
precedido pelo símbolo $, assim como usado no data frame:
> person$name
[1] "Fred"
> person$score[2]
[1] 78
# nome
# segundo elemento de $score
Pode-se ainda acessar cada elemento pelo seu número de ordem na lista
utilizando colchetes duplos:
> person[[1]]
[1] 21
> person[[3]]
[1] 65 78 55
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
73 / 89
Importação de dados
Sumário
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
74 / 89
Importação de dados
Importação de dados
O R lê ou importa dados com os seguintes formatos:
ASCII
Excel
SPSS
SAS
Stata
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
75 / 89
Importação de dados
Arquivos ASCII
Arquivos texto
O formato ASCII são arquivos em formato texto e que podem ser abertos
num editor de texto como Crimson. Em geral tem extensão .dat ou .txt.
Podemos obter os nossos dados em formato texto utilizando a opção
GUARDAR COMO.. nos diversos softwares.
Como exemplo vamos abrir o arquivo diet.txt num editor de texto para
visualizar a sua estrutura.
Para ler no R os dados no formato texto usamos o comando
read.table()
dieta<-read.table("diet.txt",header=TRUE)
dieta
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
76 / 89
Importação de dados
Arquivos ASCII
Arquivos texto
dieta<-read.table("diet.txt",header=TRUE)
dieta
A informação que se encontra no arquivo diet.txt foi atribuída ao
objeto dieta, ie, para o R, os nossos dados estão numa tabela que se
chama dieta.
O argumento header=TRUE especifica que a primeira linha do arquivo
contém o nome das variáveis.
Para maiores informações faça uma busca no help sobre o comando
read.table() e veja outros exemplos.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
77 / 89
Importação de dados
Arquivos Excel (.xls)
Arquivos Excel
Para que possamos ler um arquivo do Excel no R, temos que, em primeiro
lugar, guardar cada folha de cálculo como arquivo CSV (Comma
Separated Value), que é também um arquivo formato texto.
Dependendo das configurações regionais do computador, o arquivo do
tipo CSV terá os campos (ou colunas ou variáveis) separados por ponto e
vírgula (;) e vírgula (,) como separador decimal.
Por esta razão, é aconselhável, sempre que possível, abrir o arquivo CSV
num editor de texto como o Crimson.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
78 / 89
Importação de dados
Arquivos Excel (.xls)
Arquivos Excel
Para exercitar, abra o arquivo diet.xls no seu Excel e grave como CSV
com o nome diet.csv, no seu diretório de trabalho.
Depois de guardado no formato correto, vamos ao prompt do R para
importar o arquivo.
dieta2<-read.table("diet.csv",header=T,sep=";",dec=",")
dieta2
Não se esqueça que o comando acima só funcionará se o diretório de
trabalho do R for igual ao que se encontra o arquivo. Caso contrário terá
que fornecer o caminho completo onde o arquivo se encontra, assim:
dieta2<-read.table("c:/cursoR/diet.csv",header=T,sep=";",dec=",")
dieta2
Abra o help do comando read.table() e veja a descrição dos
argumentos sep= e dec=.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
79 / 89
Importação de dados
Arquivos Excel (.xls)
Arquivos Excel
Outra forma de ler arquivos do tipo CSV, é através dos comandos
> read.csv1("nome-do-arquivo.csv")
> read.csv2("nome-do-arquivo.csv")
O primeiro comando é usado caso o arquivo CSV tenha as variáveis
separadas por vírgula e separador decimal igual a ponto. O segundo é
utilizado quando o arquivo CSV separa as variáveis por ponto e vírgula e
tem separador decimal igual a vírgula. Essas variações no formato CSV
acontece devido as configurações regionais do seu computador e das
versões do Excel e do Windows.
Qual desses comandos podemos utilizar para ler o arquivo diet.csv, lido
anteriormente com o comando read.table(). Experimente.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
80 / 89
Importação de dados
Arquivos Excel (.xls)
Arquivos Excel
No Windows, há uma forma mais direta de importar dados do Excel, mas
que nem sempre funciona muito bem, a não ser que as folhas de cálculos
não tenham uma formatação complexa.
Neste caso é necessário utilizar a biblioteca RODBC
A primeira linha de cada folha de cálculo deverá conter o nome das
variáveis
library(RODBC)
channel <- odbcConnectExcel("USA.xls")
sqlTables(channel)
usa1 <- sqlFetch(channel, sqtable="folha1")
usa2 <- sqlFetch(channel, sqtable="folha2")
odbcClose(channel)
View(usa1)
View(usa2)
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
81 / 89
Importação de dados
Arquivos Excel (.xls)
Arquivo SPSS
Os arquivos do SPSS podem ser lidos diretamente através do comando
read.spss() da biblioteca foreign
> library(foreign)
> dados.spss<-read.spss("demo.sav",to.data.frame=T)
> View(dados.spss)
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
82 / 89
Exportação de dados
Sumário
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
83 / 89
Exportação de dados
Exportação de dados
Podemos exportar dados de vários formatos
ASCII
Excel
SPSS
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
84 / 89
Exportação de dados
Arquivos ASCII
Para exportar os dados usamos a função write.table() que grava um
arquivo texto e que pode ser lido na maioria dos outros softwares
> write.table(dados,file="arquivo.dat",sep="\t",row.names=F,quote=FALSE)
1
2
3
4
5
o primeiro argumento é o nome do objeto do R a ser exportado,
file= nome do arquivo onde o dado será armazenado
sep= tipo de delimitador a ser usado
row.names=F serve para indicar que as linhas desse objeto não têm nome
e ainda previne o R de colocar números como nomes (por default o R vai
fazer uma numeração crescente, como se fosse o número do registro, se
esse argumento for TRUE ).
quote = FALSE serve para indicar ao R que variáveis tipo caracter devem
ser exportadas sem estar entre aspas (porque se estiverem o SPSS não vai
levar isso em conta e vai importar as aspas junto).
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
85 / 89
Exportação de dados
Arquivos Excel
Para exportar os dados diretamente para o Excel é necessário carregar a
biblioteca xlsReadWrite
library(xlsReadWrite)
write.xls(dados, file="dados.xls")
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
86 / 89
Exportação de dados
Arquivos SPSS
Para exportar os dados diretamente para o SPSS é necessário carregar a
biblioteca foreign. A função write.foreign guarda dois ficheiros: um com
os dados e outro com o código/sintaxe do SPSS para ser executado.
library(foreign)
data(iris)
iris
write.foreign(iris, datafile="iris.txt",
codefile="iris.sps", package="SPSS")
O arquivo iris.txt contem os dados. O arquivo iris.sps contém a sintaxe
do SPSS para ler os dados que estão no arquivo iris.txt.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
87 / 89
Exercício
Sumário
1
Introdução
2
Como pedir ajuda
3
Filosofia de trabalho no R
4
Bibliotecas
5
Objetos
6
Importação de dados
7
Exportação de dados
8
Exercício
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
88 / 89
Exercício
Exercício
Resolva os exercícios 1, 3 e 5 que encontram-se na página
http://www.leg.ufpr.br/~paulojus/embrapa/Rembrapa/Rembrapase5.html#x7-310005.8
Crie um script (aula1.r ) com os comandos do R necessários para
elaborar cada exercício.
Utilize o símbolo # para introduzir comentários no seu script.
Valeska Andreozzi (CEAUL)
Introdução ao R
Lisboa, 2011
89 / 89