Vetor <- c(1,23,3,47,90,6,7,8)
Vetor
## [1] 1 23 3 47 90 6 7 8
Vetor[5]
## [1] 90
Vetor[c(1,2,3,4)]
## [1] 1 23 3 47
Vetor[-3]
## [1] 1 23 47 90 6 7 8
Vetor[-c(1,4)]
## [1] 23 3 90 6 7 8
Vetor[seq(1, 3)]
## [1] 1 23 3
lista <- list( Carros = c("celta", "gol", "bmw"),
Matriz = matrix(seq(1,6), nrow= 3, ncol= 2),
Notas = c(rep(10,3), rep(8,2)))
lista
## $Carros
## [1] "celta" "gol" "bmw"
##
## $Matriz
## [,1] [,2]
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
##
## $Notas
## [1] 10 10 10 8 8
lista[[2]]
## [,1] [,2]
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
lista[[1]][3]
## [1] "bmw"
lista$Carros[2]
## [1] "gol"
lista$Notas [c(4,5)]
## [1] 8 8
Matriz <- lista$Matriz
Matriz
## [,1] [,2]
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
Matriz[3,2]
## [1] 6
Matriz[1,]
## [1] 1 4
Matriz[, 2, drop = FALSE]
## [,1]
## [1,] 4
## [2,] 5
## [3,] 6
df <- data.frame(Nomes = c("Nilton", "Willian", "Lineu", "João"),
Idade = c(20,19,21,21),
Formado = rep(FALSE, 4))
df
## Nomes Idade Formado
## 1 Nilton 20 FALSE
## 2 Willian 19 FALSE
## 3 Lineu 21 FALSE
## 4 João 21 FALSE
df[3, 1]
## [1] Lineu
## Levels: João Lineu Nilton Willian
df$Idade[3]
## [1] 21
df$Nomes[1]
## [1] Nilton
## Levels: João Lineu Nilton Willian
df[1, "Nomes"]
## [1] Nilton
## Levels: João Lineu Nilton Willian
vetor2 <- c(18, 12 , 31 , 56 , 7 , 5 , 9 )
vetor2
## [1] 18 12 31 56 7 5 9
vetor2[vetor2 > 15]
## [1] 18 31 56
vetor2[vetor2 > 30 & vetor2 <100]
## [1] 31 56
vetor2 > 30 & vetor2 < 100
## [1] FALSE FALSE TRUE TRUE FALSE FALSE FALSE
vetor2 > 30 | vetor2 < 100
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE
chr <- letters[1:20] ## Criando um objeto com letras
chr
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q"
## [18] "r" "s" "t"
Selecionando as 5 primeiras letras
chr[1:5]
## [1] "a" "b" "c" "d" "e"
chr[chr == "e"]
## [1] "e"
Há casos também em que não estamos interessados pelos elementos em si, mas sim pela posição dele de acordo com o nosso condicionamento. Nesse caso podemos usar a função which().
Retorna os elementos com valor maior que 15
vetor2[vetor2 > 15]
## [1] 18 31 56
which(vetor2 >15)
## [1] 1 3 4
chr[chr == "b"]
## [1] "b"
which(chr == "e")
## [1] 5
which(vetor2 > 15 & vetor2 <100)
## [1] 1 3 4
df2 <- data.frame( ano = seq(2000,2007),
lucro = c(1 , 1.5, 3.4, 2.3, 6, 8.3, 7.5, 2.1),
Empresa = letters[1:8])
df2
## ano lucro Empresa
## 1 2000 1.0 a
## 2 2001 1.5 b
## 3 2002 3.4 c
## 4 2003 2.3 d
## 5 2004 6.0 e
## 6 2005 8.3 f
## 7 2006 7.5 g
## 8 2007 2.1 h
- Lucro : Dado em milhões
- Empresa : De "a" a "h"
df2[df2$ano == 2005,]
## ano lucro Empresa
## 6 2005 8.3 f
df2[df2$lucro > 5,]
## ano lucro Empresa
## 5 2004 6.0 e
## 6 2005 8.3 f
## 7 2006 7.5 g
df2[df2$lucro < 5, "ano"]
## [1] 2000 2001 2002 2003 2007
df2[df2$lucro < 5 & df2$ano < 2005,]
## ano lucro Empresa
## 1 2000 1.0 a
## 2 2001 1.5 b
## 3 2002 3.4 c
## 4 2003 2.3 d
df2[df2$lucro < 5 & df2$ano < 2005,]
## ano lucro Empresa
## 1 2000 1.0 a
## 2 2001 1.5 b
## 3 2002 3.4 c
## 4 2003 2.3 d
subset(df2, lucro < 5 & ano < 2005)
## ano lucro Empresa
## 1 2000 1.0 a
## 2 2001 1.5 b
## 3 2002 3.4 c
## 4 2003 2.3 d
df2[df2$lucro < 5, "ano"]
## [1] 2000 2001 2002 2003 2007
subset(df2, lucro <5 , select= "ano")
## ano
## 1 2000
## 2 2001
## 3 2002
## 4 2003
## 8 2007