Académique Documents
Professionnel Documents
Culture Documents
Introduo Aplicao R
2008/2009
O que o R?
um conjunto integrado de ferramentas
computacionais que permitem a manipulao e anlise de dados, o clculo numrico e a produo de grficos.
uma linguagem de programao simples (uma
Instalar o R
O R uma aplicao de distribuio gratuita
e de cdigo pblico (http://cran.r-project.org/), existindo verses j compiladas para execuo nos principais sistemas operativos (Windows, Linux e Macintosh).
Depois de fazer o download da verso adequada ao
sistema operativo do computador (por ex. R-2.7.2win32.exe, para o Windows), para instalar o R basta executar esse ficheiro.
exemplo, aulasR) onde iro ser guardados os ficheiros de dados pasta de trabalho.
Iniciar o R:
resposta:
Os comandos (frases que se escrevem numa certa sintaxe) introduzem-se a seguir prompt ( > ) e so executados aps pressionar Enter ( )
Edio de comandos:
Seleccionar comandos executados anteriormente: ou Percorrer a linha de comandos: ou Colocar o cursor no incio / fim da linha de comandos: Home / End
Comandos elementares
Expresso - o resultado apresentado no visor e no
registado em memria. > 2+3/4*7^2 [1] 38.75 > exp(-2)/log(sqrt(2)) [1] 0.3904951
Atribuio o resultado da expresso atribudo varivel e
no apresentado no visor. > x > x [1] > x > x [1] <- 2 # <- o operador de atribuio 2 <- 2+3/4*7^2 38.75
6
(maisculas so diferentes de minsculas), algarismos e pontos. O 1 caracter deve ser uma letra. Exemplo: Pb.ISA
Alguns nomes so utilizados pelo sistema, pelo que
Help
O comando help serve para obter informao sobre uma
funo especfica. Por exemplo, para obter informao sobre a funo sin()pode utilizar-se qualquer uma das opes:
Objectos
Os objectos so as entidades que o R cria e
> ls.str()
Para eliminar objectos:
> rm(list=ls())
Objectos (Workspace)
Workspace a coleco dos objectos disponveis
numa sesso, que pode ser guardada num ficheiro com vista sua utilizao em futuras sesses de R.
No final de cada sesso perguntado ao utilizador se quer guardar o workspace. Caso a resposta seja afirmativa, todos os objectos disponveis em memria so guardados no ficheiro .RData, na pasta de trabalho em uso, podendo ser carregados na prxima sesso de R.
Especificao da pasta de trabalho:
10
Alguns objectos
Vector Matrix List Data Frame
11
Vector
Um vector uma coleco ordenada de elementos
da funo c().
> x <- c(5.4, -3.7, 11.2, 0.78, 21.6) > x [1] 5.40 -3.70 11.20 0.78 21.60 > y <- c(FALSE, TRUE, TRUE, TRUE, FALSE) > y [1] FALSE TRUE TRUE TRUE FALSE > nomes <- c("Ana","Paulo","Z") > nomes [1] "Ana" "Paulo" "Z"
12
Vector
Um vector pode conter os smbolos especiais NA e
> 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))
13
Vector
c() a funo concatenao. Os argumentos desta
funo podem ser eles prprios vectores, pelo que c(v1,v2) devolve a concatenao dos vectores v1 e v2. Esta funo pode ter vrios argumentos.
> c(x,0,x) [1] 5.40 -3.70 11.20 0.78 21.60 0.00 5.40 -3.70 11.20 0.78 21.60 > nomes <- c(nomes,"Manel") > nomes [1] "Ana" "Paulo" "Z" "Manel"
14
elemento a elemento.
Alguns operadores aritmticos: +, -, *, /, ^
> v1 <- c(5,7) > v2 <- c(10,11,12,13) > 1/v1 [1] 0.2000000 0.1428571 > v1+v2 # o vector de menor dimenso concatenado > v1*v2 # consigo mesmo(total ou parcialmente) at
ficar com o mesmo nmero de elementos do maior
15
soma acumulada dos elementos do vector x, produto acumulado dos elementos do vector x, x ordenados por ordem crescente,
n
log, exp, sin, cos, tan, atan, sqrt, abs, ... devolvem o vector em que cada elemento o resultado de aplicar a funo ao elemento homlogo de x.
17
[1] -5.0 -4.5 -4.0 -3.5 -3.0 -2.5 -2.0 -1.5 -1.0
> seq(length=9, from=-5, by=0.5) > rep(1:3,2) # define o vector c(1,2,3,1,2,3) > rep(1:3,each=2) # o vector c(1,1,2,2,3,3)
18
lgicos.
19
20
que cada elemento TRUE se o elemento homlogo em x do tipo NA ou NaN, e ou FALSE caso contrrio.
> z <- c(5.4,-3.7,11.2,NA,21.6) > is.na(sqrt(z)) [1] FALSE TRUE FALSE TRUE FALSE Warning message: NaNs produced in: sqrt(z) > !is.na(z) [1] TRUE TRUE TRUE FALSE TRUE
21
elementos do vector x indicando as suas posies num vector ind colocado entre parntesis rectos:
> ind<- c(1,2,4) > letras[ind] [1] "a" "b" "d" > letras[-ind] # devolve os elementos de letras que no esto nas posies indicadas em ind [1] "c" "e" "f" "g"
22
> x [1] 5.40 -3.70 11.20 0.78 21.60 > x[x>0] [1] 5.40 11.20 0.78 21.60 > x[x>0 & x<10] [1] 5.40 0.78 > notas <- c(1,2,0.75,0.5,1.75,1,0.75,1,0.5) > teste <- c("I1","I2","Iac","II1","II2","IIac", + "III1","III2","IIIac") > teste[notas>1] [1] "I2" "II2"
23
Matrix
Uma matriz uma coleco de dados, todos do
mesmo tipo, referenciados por dois ndices. uma generalizao para duas dimenses de um vector.
Uma matriz definida pelo nmero de linhas (n),
24
Matrix (cont.)
A funo matrix()serve para criar matrizes.
> M <- matrix(1:12,3,4) vector de valores nlinhas ncolunas > M [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12
A opo byrow=TRUE faz com que os elementos sejam
25
Matrix (cont.)
Um objecto do tipo matrix tem associado o atributo
Matrix (cont.)
Uma matriz pode ser transformada num vector.
> A [,1] [,2] [1,] 3 0 [2,] 2 -1 [3,] -4 8 > as.vector(A) # devolve um vector cujos elementos so os da matriz [1] 3 2 -4 0 -1 8
27
Matrix (cont.)
Pode criar-se uma matriz por concatenao de vectores
e/ou matrizes:
A funo cbind faz a concatenao dos objectos por coluna > u <- 1:3 ; v <- 4:6 > U <- cbind(u,v) A funo rbind faz a concatenao dos objectos por linha > V <- rbind(u,v)
28
correspondentes
> M[c(1,3),1] # igual a M[-2,1]
List
Uma lista uma coleco ordenada de objectos, que
podem ser de tipos diferentes (vectores numricos, vectores lgicos, matrizes, listas, funes, ...).
Vamos chamar componente a cada um dos objectos da
lista.
As componentes so numeradas e podem ter um nome
associado.
> estudante<-list(nr=12345,nome=Jos Silva, + notas=c(2.5,3.4,2.1,4.3),Arq P)
podem ser referidas pelo seu ndice, utilizando parntesis rectos duplos; se tiverem nome, tambm podem ser referidas pelo nome.
> estudante[[2]] > estudante$nome
Data frame
Uma data frame semelhante a uma matriz em que
32
referidos (como numa matriz) indicando a linha e a coluna: > resultados[3,1] > resultados[,2]
A notao nomeDataFrame$nomeComponente
s colunas de uma data frame, sem necessidade de referir o nome da 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
34
Leitura de ficheiros
Uma tabela de valores, registada num ficheiro de texto (ASCII),
cabealho) \\prunus\home\cadeiras\Estatistica\EstacMeteo.csv contem dados referentes s estaes meteorolgicas automticas do Instituto de Meteorologia de Portugal. Criar a data frame estac.meteo com o contedo deste ficheiro. > estac.meteo <- read.table("//prunus/home/ + cadeiras/Estatistica/EstacMeteo.csv", + header=TRUE, as.is=TRUE,sep=",")
37
Escrita em ficheiros
Para escrever num ficheiro o contedo de uma data
em que, x o nome do objecto a guardar; file o nome do ficheiro, incluindo o caminho de pastas; quote uma varivel lgica que indica se as variveis alfanumricas so ou no escritas entre aspas; sep o caracter que separa os valores em cada linha; por omisso um espao em branco;
38
Indicadores numricos no R
mean(x)devolve a mdia dos elementos do vector x median(x)devolve a mediana dos elementos do vector
dos elementos do vector x; por omisso p=seq(0, 1, 0.25), isto , devolve os extremos e os quartis de x elementos do vector x
max(x)/min(x)devolve o mximo/mnimo dos range(x) devolve o vector c(min(x),max(x)) IQR(x) devolve a amplitude inter-quartil dos elementos
do vector x
40
sd(x)devolve o desvio padro dos elementos do vector summary(x) devolve os extremos, os quartis e a mdia
41
Funes e valores NA
Muitas das funes estatsticas anteriores podem ser
usadas com um argumento adicional, na seguinte forma funo(x, na.rm=FALSE) em que na.rm uma varivel lgica que indica se os valores desconhecidos devem ser ou no ignorados.
Caso o vector x inclua elementos NA, se na.rm=FALSE (o que ocorre por omisso) a funo devolve NA ou uma mensagem de erro, se na.rm=TRUE os valores NA so ignorados.
> y <- c(NA, 53, 31, 15, 62) > mean(y) > mean(y,na.rm=TRUE)
42