setwd
.Seleciona o diretório em que estão os arquivos necessários para serem trabalhados.
Facilita a importação dos dados.
Operação | Símbolo |
---|---|
Soma | (+) |
Subtração | (-) |
Multiplicação | (*) |
Divisão | (/) |
Raiz quadrada | (sqrt()) |
Fatorial | (factorial()) |
Exponencial | (exp()) |
Expoente | (^) |
x <- c(1,2,3,4,5,6,7,8)
y <- seq(1:20)
z <- rep("a", 20)
t <- runif(12, 3, 4)
Sequência de números inteiros de 1 a 8
x
## [1] 1 2 3 4 5 6 7 8
Sequência de números inteiros de 1 a 20
y
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Letra ‘a’ repetida 20 vezes
z
## [1] "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a" "a"
## [18] "a" "a" "a"
Geração de 12 números aleatórios da distribuição uniforme de probabilidade no intervalo [3,4]
t
## [1] 3.057833 3.602260 3.155815 3.289124 3.020876 3.431231 3.877524
## [8] 3.389077 3.996924 3.329390 3.273500 3.342575
character <- c ("a", "b", "c")
class(character) # Exibe a classe do vetor 'character'
## [1] "character"
numerico <- c(1,2,3)
class(numerico) # Exibe a classe do vetor 'numerico'
## [1] "numeric"
inteiro <- c(1L, 2L, 3L)
class(inteiro) # Exibe a classe do vetor 'inteiro'
## [1] "integer"
logica <- c(TRUE, FALSE, TRUE)
class(logica) # Exibe a classe do vetor 'logica'
## [1] "logical"
complexo <- c(1+3i, 2+4i)
class(complexo) # Exibe a classe do vetor 'complexo'
## [1] "complex"
charanum <- c(rep("a", 5), seq(1:5)) # Transforma os números em caracteres
charanum
## [1] "a" "a" "a" "a" "a" "1" "2" "3" "4" "5"
as.integer(numerico) ## Transforma a classe 'numeric' em 'integer'
## [1] 1 2 3
as.character(numerico) ## Transforma a classe 'numeric' em 'character'
## [1] "1" "2" "3"
as.logical(inteiro) ## Transforma a classe 'integer' em 'logical'
## [1] TRUE TRUE TRUE
runif(n= 10, min = 5, max= 8) # Geração de 10 números aleatórios da distribuição uniforme de probabilidade no intervalo [5,8]
## [1] 7.460861 5.908680 7.266937 5.594205 5.314490 7.977185 7.427804
## [8] 5.848979 6.389169 5.191438
runif(10, 5 , 8) ## Se ordenado, não é necessário nomear
## [1] 7.431716 6.977663 7.279631 5.033652 5.759149 7.086464 7.345305
## [8] 6.871012 5.283093 5.078223
runif(8, n= 10, min= 5) ## Se mudar a ordem, é necessário especificar os argumentos
## [1] 5.509023 5.629108 5.753583 5.022719 7.429412 7.837095 5.032406
## [8] 6.180044 7.652689 7.959781
Pra criar uma sequência de números use a função seq()
Use o a função rep() para gerar uma repetição pré estabelecida de números, caracteres, argumentos lógicos, entre outros.
seq(1:20) # Sequência de números inteiros de 1 a 20
## [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
seq(-30,30) # Sequência de números inteiros de -30 a 30
## [1] -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14
## [18] -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3
## [35] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
## [52] 21 22 23 24 25 26 27 28 29 30
seq(-30,30, by= 2) # Sequência de números inteiros de -30 a 30 com variação de 2 unidades
## [1] -30 -28 -26 -24 -22 -20 -18 -16 -14 -12 -10 -8 -6 -4 -2 0 2
## [18] 4 6 8 10 12 14 16 18 20 22 24 26 28 30
rep(TRUE, 14) # Argumento lógico 'TRUE' repetido 14 vezes
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
rep("a", 6) # Letra 'a' repetida 6 vezes
## [1] "a" "a" "a" "a" "a" "a"
rep(1:4, each= 2, len= 4)
## [1] 1 1 2 2
rep(1:4, each= 1, times= 3)
## [1] 1 2 3 4 1 2 3 4 1 2 3 4
imprimir.texto <- function(texto){
writeLines(texto)
}
imprimir.texto("Ministrando curso R")
## Ministrando curso R
soma <- function(x,y){
sum(x,y)
}
soma(2,3)
## [1] 5
Algumas funções podem facilitar ações em sua área de trabalho. A tabela abaixo mostra alguns comandos extremamente importantes e úteis.
Comando | O que faz. |
---|---|
ls() | lista os objetos criados até o momento |
rm() | Remove um objeto especifico |
rm(x,y) | Remove mais de um objeto |
rm(list=ls) | Remove todos os objetos criados |
Para valores perdidos, nomeamos como NA, e existem algumas formas de encontrarmos esse valores.
qqwer <- c (3, 4 , rep(NA, 3)) ## Criação de um vetor com números e valores perdidos
qqwer
## [1] 3 4 NA NA NA
is.na(qqwer) ## Mostra onde estão os NA´s no seu objeto
## [1] FALSE FALSE TRUE TRUE TRUE
any(is.na(qqwer)) ## Retorna se há ao menos um NA no objeto
## [1] TRUE
0/0
## [1] NaN
1/0
## [1] Inf
Preenchimento por colunas
matriz <- matrix(1:4, nrow= 2, ncol= 2) ## matriz númerica
matriz
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
re <- c(rep("a",2), rep("b",2))
matriz2 <- matrix(re, nrow = 2, ncol = 2)## Matriz caracter
matriz2
## [,1] [,2]
## [1,] "a" "b"
## [2,] "a" "b"
Preenchimento por linhas
matriz <- matrix(1:4, nrow= 2, ncol= 2, byrow = TRUE)
matriz
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
matriz2 <- matrix(re, nrow = 2, ncol = 2, byrow = TRUE)
matriz2
## [,1] [,2]
## [1,] "a" "a"
## [2,] "b" "b"
É fácil adicionarmos uma nova linha a uma matriz existente
rbind(matriz, c(1,2))
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
## [3,] 1 2
rbind(matriz2, c("c", "d"))
## [,1] [,2]
## [1,] "a" "a"
## [2,] "b" "b"
## [3,] "c" "d"
Semelhante para adicionarmos colunas
cbind(matriz, c(1.2))
## [,1] [,2] [,3]
## [1,] 1 2 1.2
## [2,] 3 4 1.2
cbind(matriz2, c("c", "d"))
## [,1] [,2] [,3]
## [1,] "a" "a" "c"
## [2,] "b" "b" "d"
É possível transformar um vetor em uma matriz
vetor <- c(1,2,3,4) ## Criação de um vetor com números
dim(vetor) <- c(2,2) ## Alterar a dimensão do vetor
vetor
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
class(vetor) ## Exibe a classe do vetor
## [1] "matrix"
OBS: Operações matemáticas com matrizes são possíveis e seguem as mesmas regras.
matriz * matriz
## [,1] [,2]
## [1,] 1 4
## [2,] 9 16
matriz + matriz
## [,1] [,2]
## [1,] 2 4
## [2,] 6 8
matriz %*% matriz
## [,1] [,2]
## [1,] 7 10
## [2,] 15 22
rownames(matriz)<- c("LINHA1", "LINHA2")
matriz
## [,1] [,2]
## LINHA1 1 2
## LINHA2 3 4
colnames(matriz2) <- c("COLUNA1", "COLUNA2")
matriz2
## COLUNA1 COLUNA2
## [1,] "a" "a"
## [2,] "b" "b"
lista <- list(Brasil= c("verde", "amarelo"), Números= c(1:10), Lógico= c(TRUE, FALSE, FALSE)) ## Criação de uma lista
lista ## Exibe a lista
## $Brasil
## [1] "verde" "amarelo"
##
## $Números
## [1] 1 2 3 4 5 6 7 8 9 10
##
## $Lógico
## [1] TRUE FALSE FALSE
class(lista) ## Exibe a classe da lista
## [1] "list"
length(lista) ## Exibe o comprimento da lista
## [1] 3
str(lista) ## Mostra toda a documentação da lista (IMPORTANTE)
## List of 3
## $ Brasil : chr [1:2] "verde" "amarelo"
## $ Números: int [1:10] 1 2 3 4 5 6 7 8 9 10
## $ Lógico : logi [1:3] TRUE FALSE FALSE
lista$Carros <- c("Gol", "Celta", "BMW")
lista
## $Brasil
## [1] "verde" "amarelo"
##
## $Números
## [1] 1 2 3 4 5 6 7 8 9 10
##
## $Lógico
## [1] TRUE FALSE FALSE
##
## $Carros
## [1] "Gol" "Celta" "BMW"
dataframe <- data.frame(Números= c(32:41),
Sexo= c(rep("Homem", 5), rep("Mulher", 5)))
dataframe ## Exibe o dataframe
## Números Sexo
## 1 32 Homem
## 2 33 Homem
## 3 34 Homem
## 4 35 Homem
## 5 36 Homem
## 6 37 Mulher
## 7 38 Mulher
## 8 39 Mulher
## 9 40 Mulher
## 10 41 Mulher
class(dataframe) ## Exibe a classe do dataframe
## [1] "data.frame"
str(dataframe) ## Exibe a estrutura do dataframe
## 'data.frame': 10 obs. of 2 variables:
## $ Números: int 32 33 34 35 36 37 38 39 40 41
## $ Sexo : Factor w/ 2 levels "Homem","Mulher": 1 1 1 1 1 2 2 2 2 2
dataframe$logica <- rep(TRUE, 10)
dataframe ## Exibe o dataframe com mais uma coluna
## Números Sexo logica
## 1 32 Homem TRUE
## 2 33 Homem TRUE
## 3 34 Homem TRUE
## 4 35 Homem TRUE
## 5 36 Homem TRUE
## 6 37 Mulher TRUE
## 7 38 Mulher TRUE
## 8 39 Mulher TRUE
## 9 40 Mulher TRUE
## 10 41 Mulher TRUE
rownames(dataframe) <- paste0("linha",1:10) # Altera o nome das linhas do dataframe
dataframe
## Números Sexo logica
## linha1 32 Homem TRUE
## linha2 33 Homem TRUE
## linha3 34 Homem TRUE
## linha4 35 Homem TRUE
## linha5 36 Homem TRUE
## linha6 37 Mulher TRUE
## linha7 38 Mulher TRUE
## linha8 39 Mulher TRUE
## linha9 40 Mulher TRUE
## linha10 41 Mulher TRUE
colnames(dataframe) <- c("Números2", "Sexo2", "logica2") # Altera o nome das colunas do dataframe
dataframe
## Números2 Sexo2 logica2
## linha1 32 Homem TRUE
## linha2 33 Homem TRUE
## linha3 34 Homem TRUE
## linha4 35 Homem TRUE
## linha5 36 Homem TRUE
## linha6 37 Mulher TRUE
## linha7 38 Mulher TRUE
## linha8 39 Mulher TRUE
## linha9 40 Mulher TRUE
## linha10 41 Mulher TRUE