R - Introdução à
Programação
Suzi Camey
Departamento Estatística - UFRGS
Agradecimento
Prof. Joaquim Pereira Neto
UNEB - Universidade
do
Estado
da
Bahia
Departamento de Tecnologia e Ciências Sociais
R_STAT -> Arquivos
Introdução ao R
 Universidade de Auckland, 1995
 Robert Gentleman, Ross Ihaka
 http://www.r-project.org
Instalando o R para Windows
 Dowload: http://www.r-project.org
 Pode ser instalado e executado em CD
ou pen drive.
 Acesso a Internet: facilita, mas não é
fundamental.
Tinn-R
 Editor de código do R
 Download:
http://sourceforge.net/projects/tinn-r/
 Dicas de uso: Help>This
version>Portuguese>leiame.html
Operações com o R
> 2 + 3*4 # prioridade da operação multiplicação
[1] 14
> 3/2+1
[1] 2.5
# prioridade da operação divisão
> 2 * 3 ^ 2# potências são indicadas por ^ ou **
[1] 18
Tudo que está depois do símbolo #, define um comentário e é ignorada pelo R
Operações com o R
No R todas as funções têm a forma:
>função(argumento obrigatório,argumento opcional)
> sqrt(2)
[1] 1.414214
# Encontra a raiz quadrada de 2
> sin(pi/6)
[1] 0.5
# Encontra o seno de 30º
> log( ,3)
#ver tips Tinn-R
> ?log
ou
> help(log)
ou
> help.search(log)
Operações com o R
Função
sqrt( )
abs( )
Descrição
raiz quadrada
valor absoluto
exponencial de
exp( )
base “e”
logaritmo na
log10( )
base 10
logaritmo na
log( )
base “e”
sin( )
funções
cos( )
trigonométricas
tan( )
asin( ) funções
acos( ) trigonométricas
atan( ) inversas
Operadores
+
-
Descrição
adição
subtração
*
multiplicação
/
divisão
** ou ^
potência
Como o R armazena objetos
 O R é uma linguagem orientada a
objetos.
 Objetos para o R: banco de dados,
como uma tabela, variáveis, vetores,
matrizes, funções, etc.
 Objetos são armazenados na
memória ativa do computador.
Como o R armazena objetos
 Criar um objeto qualquer no R: usar o
operador de atribuição “<-“
> x<-sqrt(9)
>x
> sqrt(9)->x
> y=log10(100)
> x+y
Como o R armazena objetos
 Nomes de objetos (tabelas, variáveis,
etc.) devem começar sempre com
uma letra. Maiúsculas e minúsculas
são consideradas diferentes.
Exs.:
>
>
>
>
x1 <-10
x.1 <-10
x_1 <-10
1x <-10
Workspace
 Cada vez que o R é aberto inicia-se uma
nova sessão.
 A coleção de objetos criados durante uma
sessão R é denominada de workspace.
 Todos os objetos criados podem ser salvos
em um arquivo denominado .Rdata.
 No final de cada sessão o R sempre
pergunta: "Save workspace image?" .
Workspace
 Mudando o diretório de trabalho:
 Via Menu: Arquivo>Mudar dir...
 setwd('C:/User/Prof114/')
Workspace
 O R armazena um histórico de comandos
usados na sessão em um arquivo com
extensão “.Rhistory”.
 Como os comandos ficam acumulados, para
você recuperar comandos, basta usar as
teclas de setas de deslocamento vertical,
para recuperá-los.
Listar e eliminar objetos
 Listar:
> objects()
> ls()
 Eliminar todos os objetos:
> rm()
 Eliminar os objetos x e y:
> rm(x,y)
Tipos de objetos
Sete tipos básicos de objetos, classificados
em duas categorias:
 Objetos atômicos – contém apenas dados
de um único tipo: vector, matrix, array,
factor, ts.
 Objetos não atômicos – contém valores
de todos os tipos: data.frame, list.
Tipos de objetos
Os objetos podem ainda ser classificados de acordo:
 mode: refere-se à natureza dos seus elementos:
logical, numeric, complex e character.
 attributes: informa sobre a estrutura e conteúdo do
objeto.
 class: informa o tipo de objeto: vector, matrix, array,
factor, ts, data.frame, list.
mode(x), attributes(x), class(x)
Tipos de objetos
Os elementos de um objeto pode ser:
 logical : Modo binário, com valores T ou F (True
ou False)
 numeric : Números reais
 complex : Números complexos, a + bi
 character : Caracteres, "Maria“
Tipos de objetos: Vetores
 Forma mais simples de armazenamento de dados.
 Conjunto de elementos de um mesmo tipo:
números , caracteres ou valores lógicos.
 Os vetores apresentam dois atributos: length e
mode.
Tipos de objetos: Vetores
> numero<-3
> numero
[1] 3
> mode(numero)
[1] “numeric”
> fruta<-"banana”
> fruta
[1] "banana“
> mode(fruta)
[1] "character”
Tipos de objetos: Vetores
> x<-c(10.4, 5.6, 3.1, 6.4, 21.7)
>x
[1] 10.4 5.6 3.1 6.4 21.7
> length(x)
[1] 5
> mode(x)
[1] "numeric"
Tipos de objetos: Vetores
Função Descrição
scan
lê valores
(qualquer tipo)
c
combina valores
(qualquer tipo)
rep
repete valores
(qualquer tipo)
:
seqüencias numéricas
seq
seqüencias numéricas
Examplos
scan()
scan("meuarq")
c(1,3,2,6)
c("sim", “não")
rep(c(1,2), 3)
1:5
1:-1
seq(-pi, pi, .5)
Tipos de objetos: Vetores
 Função scan()
> x<-scan()
1: 10.4 5.6 3.1 6.4 21.7
6:
Read 5 items
>x
[1] 10.4 5.6 3.1 6.4 21.7
Tipos de objetos: Vetores
> frutas<-scan(what=" ", sep=",")
1: banana,uva,manga
4:
Read 3 items
> frutas
[1] "banana" "uva" "manga"
Tipos de objetos: Vetores
 Função rep()
> x<-rep('a',5)
>x
[1] "a" "a" "a" "a" "a"
> x<-rep(c('s','n'), c(2,4))
>x
[1] "s" "s" "n" "n" "n" "n"
> x<-rep(2,6)
>x
[1] 2 2 2 2 2 2
> x<-rep(c(4, 5, 6), 2)
>x
[1] 4 5 6 4 5 6
Tipos de objetos: Vetores
 Função seq()
> x<-seq(-1,1,0.4)
>x
[1] -1.0 -0.6 -0.2 0.2 0.6 1.0
> x<-seq(-1,1,length=6)
>x
[1] -1.0 -0.6 -0.2 0.2 0.6 1.0
> x<-seq(-1, by=0.4, length=6)
>x
[1] -1.0 -0.6 -0.2 0.2 0.6 1.0
Tipos de objetos: Vetores
 Geração de seqüências numéricas.
> 1:10
[1] 1 2 3 4 5 6 7 8 9 10
 O operador “:” (dois pontos) tem prioridade
máxima numa expressão onde seja usado:
> 2*1:10
[1] 2 4 6 8 10 12 14 16 18 20
Tipos de objetos: Vetores
 Concatenação de vetores
> x <- c(2, 3, 5, 2, 7, 1)
> y <- c(10, 15, 12)
> z <- c(x,y)
>z
[1] 2 3 5 2 7 1 10 15 12
Tipos de objetos: Vetores
 Operações aritméticas
 vetores num éricos e lógicos
 operações elemento a elemento, caso tenham a
mesma dimensão.
> peso<-c(62, 70, 52, 98, 90, 70)
> altura<-c(1.70, 1.82, 1.75, 1.94, 1.84, 1.61)
 Calcular IMC para essas pessoas.
> i.m.c<-peso/altura^2
> i.m.c
[1] 21.45329 21.13271 16.97959 26.03890 26.58318
27.00513
Tipos de objetos: Vetores
 Outras funções:
> max(peso)
[1] 98
> min(peso)
[1] 52
> range(peso)
[1] 52 98
Tipos de objetos: Vetores
 Outras funções:
De outra forma:
> mean(peso)
[1] 73.66667
> sum(x)/length(x)
[1] 73.66667
> var(peso)
[1] 298.2667
> sum((x-mean(x))^2)/(length(x)-1)
[1] 298.2667
Tipos de objetos: Vetores
Operador
comparativo
Descrição
<
menor que
>
maior que
<=
menor ou igual
>=
maior ou igual
==
!=
igual
diferente
Operador lógico
& (vetor)
&&
(para avaliar
condições)
|
(vetor)
||
(para avaliar
condições)
xor (exclusivo)
Descrição
e
x&y
e
x&&y
ou
x|y
ou
x&&y
ou
xor(x , y)
Tipos de objetos: Vetores
> x<-seq(-2, 2, by=0.5)
>x
[1] -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0
> x>=-1
[1] FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
> x>=-1 & x<=1
[1] FALSE FALSE TRUE TRUE TRUE TRUE TRUE FALSE FALSE
> x<=-1 | x>=1
[1] TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE
Tipos de objetos: Vetores
 Vetores alfanuméricos
> x<-paste(c("X"), 1:10, sep="-")
>x
[1] "X-1" "X-2" "X-3" "X-4" "X-5" "X-6" "X-7"
[8] "X-8" "X-9" "X-10"
> xy<-paste(c("X","Y"), 1:10, sep="-")
> xy
[1] "X-1" "Y-2" "X-3" "Y-4" "X-5" "Y-6" "X-7"
[8] "Y-8" "X-9" "Y-10”
Tipos de objetos: Vetores
 Subconjunto de vetores
> x<-c(0, 8, 9, 7, 4, 2, 10, 0, 2, 1)
> x1<-x[6]
> x1
[1] 2
> x2<-x[2:6]
> x2
[1] 8 9 7 4 2
> x3<-x[c(2, 4, 8)]
> x3
[1] 8 7 0
Tipos de objetos: Vetores
 Subconjunto de vetores
> x6<-x[c(-1, -2, -10)]
> x6
[1] 9 7 4 2 10 0 2
> frutas<-c(5, 10, 1, 20)
> frutas
[1] 5 10 1 20
> names(frutas)<-c("laranja", "banana", "maçã", "pera")
> jantar<-frutas[c("maçã", "laranja")]
> jantar
maçã laranja
Tipos de objetos: Vetores
 Subconjunto de vetores
> x<-c(0, 8, 9, 7, 4, 2, 10, 0, 2, 1)
> xa<-x[x > 4]
> xa
[1] 8 9 7 10
> xb<-x[x > 2 & x <= 8]
> xb
[1] 8 7 4
Tipos de objetos: Matrizes
 Disposição bidimensional dos dados em linhas e
colunas.
 Conjunto de elementos de um mesmo tipo:
números , caracteres ou valores lógicos.
 Matrizes apresentam quatro atributos:




length – dá o número de elementos da matriz
mode – dá o tipo de valores
dim – dá o número de linhas e colunas
dimnames – dá os nomes das linhas e colunas
Tipos de objetos: Matrizes
 matrix(data, nrow=m, ncol=n, byrow=T ou F)
notas.matrix<-matrix(scan(), ncol=3, byrow=T)
1: 7.5 6.9 8.2 8.2 7.3 6.7 5.9 6.8 9.0 7.8 7.0 7.5 8.8 7.9 6.4
16:
> notas.matrix
[,1] [,2] [,3]
[1,] 7.5 6.9 8.2
[2,] 8.1 7.3 6.7
[3,] 5.9 6.8 9.0
[4,] 7.8 7.0 7.5
[5,] 8.8 7.9 6.4
Tipos de objetos: Matrizes
 Função “cbind”
>
>
>
>
>
notas.p1<-c(7.5, 8.1, 5.9, 7.8, 8.8)
notas.p2<-c(6.9, 7.3, 6.8, 7.0, 7.9)
notas.p3<-c(8.2, 6.7, 9.0, 7.5, 6.4)
notas.matrix<-cbind(notas.p1, notas.p2, notas.p3)
notas.matrix
notas.p1 notas.p2 notas.p3
[1,]
7.5
6.9
8.2
[2,]
8.1
7.3
6.7
[3,]
5.9
6.8
9.0
[4,]
7.8
7.0
7.5
[5,]
8.8
7.9
6.4
Tipos de objetos: Matrizes
 Função “rbind”
>
>
>
>
>
>
>
aluno1<-c(7.5, 6.9, 8.2)
aluno2<-c(8.1, 7.3, 6.7)
aluno3<-c(5.9, 6.8, 9.0)
aluno4<-c(7.8, 7.0, 7.5)
aluno5<-c(8.8, 7.9, 6.4)
notas.matrix<-rbind(aluno1,aluno2,aluno3,aluno4,aluno5)
notas.matrix
[,1] [,2] [,3]
aluno1 7.5 6.9 8.2
aluno2 8.1 7.3 6.7
aluno3 5.9 6.8 9.0
aluno4 7.8 7.0 7.5
aluno5 8.8 7.9 6.4
Tipos de objetos: Matrizes
 Outras maneiras:
> notas.matrix<matrix(c(7.5,6.9,8.2,8.1,7.3,6.7,5.9,6.8,
9.0,7.8,7.0,7.5,8.8,7.9,6.4), ncol=3, byrow=T)
> notas.matrix<-c(7.5,6.9,8.2,8.1,7.3,6.7,5.9,6.8,
9.0,7.8,7.0,7.5,8.8,7.9,6.4)
> dim(notas.matrix) <-dim(5,3)
> notas.matrix<-matrix(notas.matrix, ncol=3)
> notas.matrix<-matrix(notas.matrix, nrow=5)
Tipos de objetos: Listas
 Lista é um objeto constituído por uma coleção ordenada de
objetos.
 É o tipo de objeto mais flexível do R.
 É a mais freqüente escolha para retornar valores de uma
análise do R.
>dados<-list(pai="Jose", esposa="Maria", n.filhos=3,
idade.filhos=c(4, 7, 9))
>dados
>dados$pai
>dados$pai<-”José”
>dados[1]
>dados[[1]]
>dados[[4]][2]
Download

Introducao_R