Escolar Documentos
Profissional Documentos
Cultura Documentos
LINGUAGEM R
ESTATSTICA DESCRITIVA INFERNCIA ESTATSTICA
Intervalos
de aprendizagem
Linguagem R:
Uma linguagem para anlise de dados
2
HTTP://WWW.R-PROJECT.ORG/
Linguagem R
FEUP
Linguagem R
3
ndice
Conceitos bsicos O R como mquina de calcular Objectos Importao/exportao de dados Outras funes de uso comum Ajuda Bibliografia aconselhada
Variveis Vetores Matrizes Arrays Listas Dataframes Funes adicionais sobre objectos
Linguagem R
FEUP
Linguagem R
4
Conceitos bsicos
R um software gratuito para estatstica computacional, anlise de dados e muito mais Instalao: http://cran.es.r-project.org/ , escolher o sistema operativo (Windows, MacOS X ou Linux) e optar pela verso binria de base mais recente. Utilizar as opes de instalao que aparecem por defeito. Esta opo garante a instalao dos principais pacotes da linguagem R. Ao todo, existem mais de 1000 pacotes! Algumas funes que vamos utilizar requerem a instalao de pacotes adicionais (a ver mais tarde )
Joo Mendes Moreira Linguagem R
O ambiente de trabalho
FEUP
Linguagem R
5
Linguagem R
FEUP
Linguagem R
6
Objetos
Variveis Vetores
Sequncias Fatores
Linguagem R
7
Objetos: variveis
possvel guardar valores ou resultados de operaes em objectos que se chamam variveis. Experimente as seguintes instrues: x<-2 # Para atribuir um valor a uma varivel utiliza-se a instruo <- x # Cuidado: x e X so objetos diferentes. A linguagem R sensvel s # maisculas/minsculas. x+x x<-x+x x texto<-'ol' # Uma varivel pode guardar valores no numricos.
Linguagem R
FEUP
Linguagem R
8
Objetos: vetores
Os vetores so conjuntos ordenados de valores: peso <- c(60, 72, 57, 90, 95, 72) altura <- c(1.75, 1.80, 1.65, 1.90, 1.74, 1.91) imc <- peso/altura^2 # altura^2 = altura*altura names(imc) <- c('Ana','Rui','Isabel','Paulo','Eva','Diogo') imc length(imc) # tamanho do vector typeof(peso)# tipo de dados: logical", "integer, "double", "character", "NULL", peso <- as.integer(peso)
Sequncias so vectores de inteiros no negativos: x <- 0:10 x seq(0,10,1) seq(1,10,2)
Joo Mendes Moreira
Fatores so vetores cujos valores possveis so enumerveis, i.e., um conjunto finito: classif <- factor(c('insuf,'suf,'insuf','bom','suf')) levels(classif) levels(classif) <- c(levels(classif),'muito bom) classif
Linguagem R FEUP
Linguagem R
9
Linguagem R
10
35 62
38 70
40 74
38 76
42 75
37 65
33 58
25 50
36 70
39 73
40 75
45 78
Usando instrues em linguagem R: a) Guarde esta informao de forma adequada e construa um objeto com a receita global por cada ms do ano. b) Quais os meses cuja receita global foi inferior a 100 mil euros? c) Quais os meses cuja receita global foi inferior a 100 mil euros ou superior a 120 mil euros? d) Quais os meses cuja receita global foi superior a 100 mil euros e inferior a 120 mil euros? e) Ordene os meses por ordem decrescente da receita global.
Joo Mendes Moreira Linguagem R FEUP
Linguagem R
11
Linguagem R
FEUP
Linguagem R
12
Objetos: matrizes
As matrizes podem ser vistas como vetores de duas dimenses: notas <- matrix(c(15,17,15,16,15,18,15,16,12,17,14,12),3,4) notas # Vejam a ordem de preenchimento rownames(notas) <- c('Mrio','Lcio','Amaro') N de linhas colnames(notas) <- c('SI','EC','AD','IA') N de colunas notas notas <- rbind(notas, c(15,13,13,14)) # acrescenta uma linha notas notas <- notas[-nrow(notas),] # remove a ltima linha notas A indexao de matrizes parecida com a indexao de vetores: notas[1,2] notas[1,] notas[,2] notas['Amaro','AD']
Joo Mendes Moreira Linguagem R FEUP
Linguagem R
13
Objetos: arrays
Os arrays podem ser vistos como matrizes com mais de duas dimenses. Exemplo de um array com 3 dimenses: notas <- array(c(15,17,15,16,15,18,15,16,12,17,14,12, 13,14,15,16,14,12,15,16,10,15,14,12), c(3,4,2)) notas # Vejam a ordem de preenchimento dimnames(notas) <- list(c('Mrio','Lcio','Amaro'), c('SI','EC','AD','IA'), c('Melhoria','Frequncia')) notas A indexao de arrays parecida com a indexao de matrizes: notas[2,3,2] notas[,2,] notas[1,2,] notas['Amaro', 'AD', 'Melhoria']
Joo Mendes Moreira Linguagem R FEUP
Linguagem R
14
Objetos: listas
Uma lista um conjunto ordenado de objectos. Os objectos que constituem uma lista podem ser de diferentes tipos: variveis, vetores, matrizes, etc. aluno1 <- list(nome='Mrio', curso='CEI', notas=c(15,16,15,17)) aluno2 <- list(nome='Lcio', curso='CEI', notas=c(17,15,16,14)) aluno3 <- list(nome='Amaro', curso='CEI', notas=c(15,18,12,12)) alunos <- list(aluno1, aluno2, aluno3) alunos Indexao de listas: alunos[[1]] alunos[[1]]$nome alunos[[2]]$notas[3] alunos[[1]]$ano.lectivo <- 3 # acrescenta o campo 'ano.lectivo' ao aluno 1 alunos
Joo Mendes Moreira Linguagem R FEUP
Linguagem R
15
Linguagem R
FEUP
Linguagem R
16
Linguagem R
17
Linguagem R
18
Linguagem R
FEUP
Linguagem R
19
Linguagem R
FEUP
Linguagem R
20
Importao/exportao de dados
No menu do R: File -> Change dir ... Nesta diretoria tem de existir o ficheiro <ficheiro>.csv. Pode-se criar com o Excel ...
df <- read.csv('<ficheiro.csv>', sep = ",") Este smbolo tem de ser igual ao utilizado no ficheiro <ficheiro>.csv para separar colunas. Basta abrir o ficheiro e ver qual ...
Linguagem R
FEUP
Linguagem R
21
Ajuda
help.start() # pgina inicial da documentao online do R help(lm) # ajuda sobre um comando, neste exemplo: lm. Equivalente a fazer ?lm lm(formula, data, subset, weights, na.action, method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE, contrasts = NULL, offset, ...) # Nas ajudas a funes, <var> = <valor> significa que essa varivel toma por defeito # o valor dado. help(package=stats) #ajuda sobre, neste exemplo, o pacote stats help.search('regression') # procura comandos que estejam relacionados com um dado tpico, neste exemplo regression. Equivalente a fazer ??regression. mais abrangente que a funo help. apropos('lm') # comandos que contenham no seu nome, neste exemplo, lm example(lm) # executa os exemplos que esto na documentao sobre o comando, neste caso, lm
Joo Mendes Moreira Linguagem R FEUP
Linguagem R
22
Bibliografia aconselhada
Textos introdutrios linguagem R (um destes 3): Lus Torgo, Introduo programao em R, http://cran.r-project.org/doc/contrib/Torgo-ProgrammingIntro.pdf, 2006. Peter Dalgaard, Introductory Statistics with R, 2nd edition, Springer, 2008. W. N. Venables, D. M. Smith, R Development Core Team, An introduction to R, 2009. Este livro est disponvel de forma gratuita no site do R-project http://www.r-project.org/ , na opo Manuals do tpico Documentation. Textos resumo de apoio linguagem R: Tom Short, R Reference Card, http://cran.r-project.org/doc/contrib/Short-refcard.pdf, 2004 Motor de pesquisa para R: http://www.rseek.org/.
Joo Mendes Moreira Linguagem R FEUP