Não foi possível enviar o arquivo. Será algum problema com as permissões?

Essa é uma revisão anterior do documento!


Tabela de conteúdos

Comandos mostrados nas aulas do curso (2008)

Comandos mostrados nas aulas do curso (2008)

Semana 1

27/02/2008

Quatro formas alternativas de entrada de dados de 0 a 10.

x <- c(0, 1, 2, 3, 4, 5 ,6, 7, 8, 9, 10)
x
x <- 0:10
x
x <- seq(0,10, by=1)
x <- scan()
1: 0
2: 1
...
10: 9
11: 10
12: 

Extendendo as possibilidades

seq(0,1, by=0.1)
(0:10)/10
 
2*(0:10)
seq(0,20,by=2)
 
10:0
seq(10,0, by=-1)

Selecionando indivíduos pela sua posição (indexando valores de um vetor). Note que comandos a seguir somente mostram resultados sem alterar x

x[1]
x[4]
x[1:3]
x[5:8]
x[c(2, 5, 7])
x

Selecionando valores do vetor segundo outros critérios. Nos comandos a seguir o objeto original não é alterado.

pesos <- c(67, 83, 56, 91, 58, 47, 82, 75)
pesos[pesos > 80]
pesos[pesos < 50 | pesos > 80]
pesos[pesos > 50 & pesos < 80]

Substituindo valores de um vetor. Note que comandos alteram valores do vetor.

x[1:3] <- c(0, 10, 20)
x
 
pesos
pesos[4]
pesos[4] <- 81
pesos
pesos[pesos > 80]
pesos[pesos > 80] <- 85
pesos
pesos[pesos > 80] <- NA
pesos
pesos[is.na(pesos)] <- 90
pesos

Identificando as posições dos elementos que satisfazem certo critério.

pesos
which(pesos == 56)
which(pesos == 90)
which(pesos < 70)

Amostrando valores de um vetor. Note uso do rep para definir amostra com reposição. args() mostra os argumentos da função.

dados <- c(34, 28, 31, 32, 43, 40, 45, 39, 26, 29)
sample(dados, 3)
sample(dados, 3)
sample(dados, 3, rep=TRUE) 
args(sample)

Ordenando valores

dados
sort(dados)
rev(sort(dados))
sort(dados, decreasing=T)

Acrescentando elementos e concatenando dois ou mais vetores

x <- 0:10
x
x <- c(x, 11)
x
 
x1 <- c(51:60, 101:110)
x1
 
x2 <- c(x, c(15, 18, 21, 15, 30))
x2
 
x3 <- c(x2, x1)
x3
 
c(1:10, seq(21, 50, by=2), c(100, 110, 150))

Semana 2

03/03/2008

Operadores aritméticas e funções para operações aritméticas, prioridade de operações, uso de parêntesis.

x <- 0:10
px <- choose(10, x) * (0.3)^x * (1-0.3)^(10-x)
px

Gráficos

plot(x, px)            # ver gráfico
plot(x, px, type="h")  # ver gráfico

Funções relacionadas a distribuições de probabilidades

px <- dbinom(x, 10, 0.3)
px

Gráfico da função acumulada

Fx <- pbinom(x, 10, 0.3)
Fx
cumsum(px)        # note que soma acumulada de dbinom() fornece mesmo resultado que pbinom()
plot(x, Fx, type="s")

Lei da reciclagem (recycling rule) – válida para as operações aritméticas

2 * x
(0.3)^x
x1 <- c(2, 5, 7, 8)
x1
x2 <- c(10, 20)
x2
x1 + x2
x2 + x1
x3 <- (1:3)*10
x3
x1 + x3
x3 + x1
x2 + x3
x3 + x2
x1 * x2
x1 * x2
exp(x1) + log(x2)

Argumentos de funções: ordem dos argumentos, nomes dos argumentos, casamento parcial de nomes, argumentos com default

args(dbinom)
dbinom(x, 10, 0.3)
dbinom(x=x, size=10, prob=0.3)
dbinom(prob=0.3, x=x, size=10)
dbinom(size=10, prob=0.3, x=x)
dbinom(x, s=10, p=0.3)
dbinom(x, p=0.3, s=10)
dbinom(x, p=0.3, s=10)
dbinom(x, 10, 0.3, log=F)
dbinom(x, 10, 0.3, log=T)

05/03/2008

Verificando máximos, mínimos e suas posições em um vetor.

pesos <- c(67, 83, 56, 91, 58, 47, 82, 75)
max(pesos)
min(pesos)
which(pesos == max(pesos))
which.max(pesos)
which(pesos == min(pesos))
which.min(pesos)

Testando pela ocorrência de NA. Note o uso do caracter de negação !

dat <- c(43, 56, NA, 23, 48, 33, NA, 29, 33, 39)
is.na(dat)
!is.na(dat)
which(is.na(dat))
which(!is.na(dat))
dat1 <- dat[!is.na(dat)]

Semana 3

10/03/2008

Outras funções de probabilidades

args(dchisq)
args(dt)

Algumas contantes e operadores

exp(1)
exp(3)
print(pi, dig=12)
print(pi, dig=12)
pi
options(digits=12)
pi
exp(1)

Examinar opções de options()

options()

12/03/2008

Funções para verificar exitência de NA's NaN's e valores infinitos (Inf)

x <- c(5, 0, -2)
x/0
is.nan(x/0)
is.finite(x/0)
!is.finite(x/0)

Explicações sobre como o R armazana objetos (RAM e/ou dispositivos como por exemplo o HD)

save.image()
q()

Listando e apagando objetos

ls()
objects()
rm(x)
rm(list=ls())
args(ls)
ls()
ls(all=T)

Tipos de objetos no R: matrizes

x <- 1:24
x
m <- matrix(x, nr=6)
m
m <- matrix(x, nr=6, byrow=T)
m
x <- 1:25
m <- matrix(x, nr=6)
m
attributes(x)
attributes(m)

Tipos de objetos no R: arrays

x <- 1:24
a <- array(x, dim=c(4,3,2))
a

Digitação e conversão de uma tabela de tripla entrada (dada no quadro durante a aula) em um objeto do tipo array

PR SC RS
Masculino Feminino Masculino Feminino Masculino Feminino
Não Fuma 45 16 21 33 40 45
Fuma pouco 28 22 34 21 50 37
Fuma muito 37 15 56 30 85 29

Comentários sobre ordem de entrada dos dados, cliclagem das variáveis e definição das dimensões do array

freqs <- scan()
1: 45
2: 28
3: 37
4: 16
5: 22
6: 15
7: 21
8: 34
9: 56
10: 33
11: 21
12: 30
13: 40
14: 50
15: 85
16: 45
17: 37
18: 29
19:
freqs
Af <- array(freqs, dim=c(3,2,3))
Af

Semana 4

17/03/2008

freqs = scan(file='http://leg.ufpr.br/~ehlers/CE223/fumo.dat')
 
array(freqs, dim=c(3,2,3))
 
nomes = list(c('PR','SC','RS'), c('M','F'), c('nao fuma','fuma pouco','fuma muito'))
 
hf = array(freqs, dim=c(3,2,3), dimnames=nomes)
 
hf
 
m1 <- matrix(1:12, ncol = 3)
m1
 
dimnames(m1)
 
dimnames(m1) <- list(c("L1", "L2", "L3", "L4"), c("C1", "C2", "C3"))
 
m1
 
m2 <- cbind(1:5, 6:10)
m2
 
m3 <- cbind(1:5, 6)
m3
 
margin.table(m1, margin = 1)
 
apply(m1, 1, sum)
 
rowSums(m1)
 
margin.table(m1, margin = 2)
 
apply(m1, 2, sum)
 
colSums(m1)
 
#operacoes com matrizes
 
m4 <- matrix(1:6, nc = 3)
m5 <- matrix(10 * (1:6), nc = 3)
m4
 
m5
 
m4 + m5
 
m4 * m5
 
m5 - m4
 
m5/m4
 
m4 %*% m5
 
t(m4)
 
m6 = t(m4)%*% m5
 
solve(m6)
 
m6[3,3]=20
 
solve(m6)
 
mat <- matrix(c(1, 5, 2, 3, -2, 1, -1, 1, -1), nc = 3)
 
vec <- c(10, 15, 7)
 
solve(mat, vec)

x <- c(0, 1, 2, 3, 4, 5 ,6, 7, 8, 9, 10)
x
x <- 0:10
x
x <- seq(0,10, by=1)
x <- scan()
1: 0
2: 1
...
10: 9
11: 10
12: 

Extendendo as possibilidades

seq(0,1, by=0.1)
(0:10)/10
 
2*(0:10)
seq(0,20,by=2)
 
10:0
seq(10,0, by=-1)

19/03/2008

Data frames

d1 = data.frame(x=1:10,y=c(51,54,61,67,68,75,77,75,80,82))
 
d1
 
      x  y
  1   1 51
  2   2 54
  3   3 61
  4   4 67
  5   5 68
  6   6 75
  7   7 77
  8   8 75
  9   9 80
  10 10 82
 
names(d1)
 
d1$x
d1$y
 
d1[,1]
d1[,2]
 
plot(d1)
 
plot(d1$x,d1$y)
 
d2 = data.frame(Y = c(rnorm(5,mean=10,sd=2), rnorm(5,16,2), rnorm(5,14,2)))
 
gl(3, 5)
 [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
Levels: 1 2 3
 
d2$lev = gl(3, 5)
 
d2
 
is.factor(d2$lev)
 
# Aplicando uma funcao a um Data Frame separando por fatores
 
by(d2$Y, d2$lev, summary)
 
# Criando um Data Frame a partir de todas as combinacoes de 2 fatores.
 
d3 = expand.grid(1:3, 4:5)
d3
 
is.data.frame(d3)
 
# Adicionando colunas
 
d4 = data.frame(peso=rnorm(15,65,5),altura=rnorm(15,160,10))
d4
 
d4=cbind(d4,sexo=c(rep('M',10),rep('F',5)))
d4
 
# Toda coluna que não seja composta exclusivamente de números é definida como um fator.
 
is.factor(d4$sexo)
[1] TRUE
 
letters
 
LETTERS
 
d4=cbind(d4,nome=letters[1:15])
 
is.factor(d4$nome)
[1] TRUE
 
d4$nome= as.character(d4$nome)
 
d4
 
dim(d4)
 
names(d4)
 
dimnames(d4)
 
rownames(d4)
 
colnames(d4)
 
d4[d4$sexo=='M',1:2]
 
d4[d4$sexo=='F',4]
 
by(d4[,1:2],d4$sexo,function(x)x)
 
by(d4[,4],d4$sexo,function(x)as.character(x))

Listas

#Listas sao estruturas genericas e flexiveis que permitem armazenar
#diversos formatos em um unico objeto. 
 
lis1 <- list(A = 1:10, B = "CE 223", C = matrix(1:9,ncol = 3))
lis1
 
$A
[1]  1  2  3  4  5  6  7  8  9 10
 
$B
[1] "CE 223"
 
$C
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
 
#Varias funcoes do R retornam listas
 
d1
 
lis2 = lm (y ~ x, data=d1)
 
lis2
 
is.list(lis2)
 
class(lis2)
 
summary(lis2)
 
anova(lis2)
 
names(lis2)
 
lis2$pred
 
lis2$residuals
 
par(mfrow=c(2,2))
 
plot(lis2)
 
#Selecionando elementos de uma lista
 
lis1$A
 
lis2$coeff
 
lis1[3]
 
lis1[[3]]


QR Code
QR Code disciplinas:ce223:comandos2008 (generated for current page)