Análise de Dados em R (FNDE) - Módulo 1
Allan Vieira
janeiro de 2018
Vetor numérico:
[1] 5.1 4.9 4.7 4.6 5.0 5.4
Vetor de strings:
[1] "R" "FNDE" "R" "FNDE" "R" "FNDE" "R" "FNDE" "R" "FNDE"
[11] "R" "FNDE" "R" "FNDE" "R" "FNDE" "R" "FNDE" "R" "FNDE"
Vetor lógico:
[1] TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE
Matriz numérica:
[,1] [,2]
[1,] 0.9453489 0.05102219
[2,] 0.8881304 0.42832298
Matriz de strings:
[,1] [,2]
[1,] "R" "FNDE"
[2,] "FNDE" "R"
[3,] "R" "FNDE"
[4,] "FNDE" "R"
[5,] "R" "FNDE"
Matriz lógica:
[,1] [,2] [,3] [,4]
[1,] TRUE TRUE TRUE TRUE
[2,] TRUE TRUE TRUE TRUE
[3,] FALSE FALSE FALSE FALSE
[4,] TRUE TRUE TRUE TRUE
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
meu_cubo <- function(x){
out <- x^3
return(out)
}
meu_cubo
function(x){
out <- x^3
return(out)
}
[[1]]
[1] "R" "FNDE" "R" "FNDE" "R" "FNDE" "R" "FNDE" "R" "FNDE"
[11] "R" "FNDE" "R" "FNDE" "R" "FNDE" "R" "FNDE" "R" "FNDE"
[[2]]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
[[3]]
[,1] [,2]
[1,] 0.9453489 0.05102219
[2,] 0.8881304 0.42832298
[[4]]
function (x)
{
out <- x^3
return(out)
}
x <- 4
# ou
x = 4
x <- c(4,5,6,7,8)
# ou
x = c(4,5,6,7,8)
x[3] # extraindo 3º elemento do vetor x
x[c(1,4)] # extraindo 1º e 4º elementos do vetor x
Criação de alguns objetos:
vetor1 <- c(12, 43.8, NA, 67)
vetor2 <- c(2, 90, 360, 23)
vetor3 <- c("BB", "CEF", "CEF", "BB")
df <- data.frame("valor"=vetor1, "atraso"=vetor2, "banco"=vetor3)
m <- matrix(c(1,2,3,4,5,6,7,8,9,10), ncol=2)
m2 <- matrix(c(1,2,3,4,5,6,7,8,9,10), ncol=2, byrow=TRUE)
minha_lista <- list(m2, vetor1, df)
Indexação:
vetor1[3]
[1] NA
vetor2[c(1,3)]
[1] 2 360
df[,2]
[1] 2 90 360 23
df$atraso
[1] 2 90 360 23
df[,"atraso"]
[1] 2 90 360 23
df[-3,]
valor atraso banco
1 12.0 2 BB
2 43.8 90 CEF
4 67.0 23 BB
m[1,2]
[1] 6
minha_lista[[2]]
[1] 12.0 43.8 NA 67.0
minha_lista[[2]][1] # ou minha_lista[[c(2,1)]]
[1] 12
# criando dados fictícios:
vetor1 <- c(12, 43.8, NA, 67)
vetor2 <- c(2, 90, 360, 23)
vetor3 <- c("BB", "CEF", "CEF", "BB")
df <- data.frame("valor"=vetor1, "atraso"=vetor2, "banco"=vetor3)
m <- matrix(c(1,2,3,4,5,6,7,8,9,10), ncol=2)
mean(vetor2) # média
[1] 118.75
mean(df[,2])
[1] 118.75
sum(df[,1]) # soma
[1] NA
sum(df[,1], na.rm=TRUE) # soma com missig value
[1] 122.8
colMeans(df[, c(1,2)], na.rm=TRUE) # só p/ colunas numéricas
valor atraso
40.93333 118.75000
rowMeans(m)
[1] 3.5 4.5 5.5 6.5 7.5
colSums(m)
[1] 15 40
rowSums(df[,c(1,2)])
[1] 14.0 133.8 NA 90.0
colnames(df)
[1] "valor" "atraso" "banco"
names(vetor1)
NULL
length(vetor3)
[1] 4
ncol(df) # nro colunas
[1] 3
nrow(m) # nro linhas
[1] 5
max(m) # max
[1] 10
min(vetor2) # min
[1] 2
sort(df[,2]) # ordenar os valores
[1] 2 23 90 360
sort(m[,2], decreasing = TRUE) # forma decrescente
[1] 10 9 8 7 6
sort(vetor3) # também ordena alfabeticamente
[1] "BB" "BB" "CEF" "CEF"
order(df[,2]) # ordena e retorna os índices originais dos elementos dentro da ordenação
[1] 1 4 2 3
rank(vetor2) # atribui postos aos valores de um objeto sem ordenar a poisção da saída
[1] 1 3 4 2
## listar e remover objetos
ls() # listar
rm(objeto) # remover
1:10 # sequencia de 1 a 10
[1] 1 2 3 4 5 6 7 8 9 10
seq(from=1,to=10,by=2) # sequenciade 1 até 10 com intervalos de 2 em 2
[1] 1 3 5 7 9
seq(125, 155, 5) # sequencia de 125 a 155 com intervalos de 5 em 5
[1] 125 130 135 140 145 150 155
seq(0.1, 0.5, 0.05) # de 0.1 ate 0.5 de 0.05 em 0.05
[1] 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50
rep(x=5,times=10) # repetir o numero 5, 10 vezes
[1] 5 5 5 5 5 5 5 5 5 5
rep("FNDE", 4) # repete a palavra FNDE 4 vezes
[1] "FNDE" "FNDE" "FNDE" "FNDE"
rep(vetor1, 2) # repete o vetor inteiro duas vezes
[1] 12.0 43.8 NA 67.0 12.0 43.8 NA 67.0
rep(df[,2], each=3 ) # repete cada elemento 3 vezes
[1] 2 2 2 90 90 90 360 360 360 23 23 23
rep(c("três", "dois", "um", "quatro"), c(3,2,1,4)) # primeiro parametro
[1] "três" "três" "três" "dois" "dois" "um" "quatro"
[8] "quatro" "quatro" "quatro"
#...indica quais palavras devem ser repetidas e segundo parametro
#... indica quantas vezes cada uma será repetida
paste("FIES", "FNDE", "R", sep="")
[1] "FIESFNDER"
paste("FIES", "FNDE", "R", sep="-")
[1] "FIES-FNDE-R"
paste(1:3, c("FNDE","MEC"), 1:2, sep="/") # !!reciclagem!!
[1] "1/FNDE/1" "2/MEC/2" "3/FNDE/1"
paste(c("A", "S", "D", "F"),
c("W", "X", "Y", "Z")) # mesmo que sep=" "
[1] "A W" "S X" "D Y" "F Z"
paste(c("A", "S", "D", "F"),
c("W", "X", "Y", "Z"), collapse = '') # produz uma úncia string
[1] "A WS XD YF Z"
sample(x=vetor1, size=2, replace=FALSE) # sorteia dois elementos do vetor1 sem repetição
[1] 67.0 43.8
sample(x=1:5, size=4, replace=TRUE) # sorteia 4 elementos da sequencia de 1 a 5...com possibilidade de repetição
[1] 2 2 5 1