Skip to content

Instantly share code, notes, and snippets.

@JosielFaleiros
Created October 17, 2018 15:58
Show Gist options
  • Save JosielFaleiros/595d36813229b8a4e5d0bfbb27b514af to your computer and use it in GitHub Desktop.
Save JosielFaleiros/595d36813229b8a4e5d0bfbb27b514af to your computer and use it in GitHub Desktop.
#################################################
########### 01 - Explorando o RStudio ###########
#################################################
setwd("/media/josiel/PENDRIVE/Linguagem_r/DesenvolvimetoR.R
")
getwd()
# Informa??es sobre a sess?o
sessionInfo()
# Imprimir na tela
print('R - Uma das melhores para an?lise de Dados')
# Criar gr?ficos
plot(1:30)
# Instalar pacotes
install.packages('randomForest')
install.packages('ggplot2')
install.packages("dplyr")
install.packages("devtools")
# Carregar o pacote
library(ggplot2)
# Descarregar o pacote
detach(package:ggplot2)
# Visualizando o diret?rio de trabalho
getwd()
# Se souber o nome da fun??o
help(mean)
?mean
# exemplos do uso da fun??o
example('plot')
#################### 01 - Hands On ####################
# 1- Configurar Diret?rio
# 2- Instalar e carregar o pacote "ggplot2"
# 3- ler linha de comando:
options ( scipen= 999 )
theme_set ( theme_bw ())
data ( "midwest" , package = "ggplot2" )
midwest <- read.csv("http://goo.gl/G1K41K")
gg <- ggplot (midwest, aes ( x= area, y= poptotal)) + geom_point ( aes ( col= state, size= popdensity)) + geom_smooth ( method= "loess" , se= F) + xlim ( c ( 0 , 0.1 )) + ylim ( c ( 0 , 500000 )) + labs ( subtitle= "Area Vs Population" , y= "Population" , x= "Area" , title= "Scatterplot" , caption = "Source: midwest" )
plot (gg)
############################################
########### 02 - Operadores em R ###########
############################################
# Operadores B?sicos
# Soma
4 + 4
# Subtra??o
4 - 4
# Multiplica??o
4 * 4
# Divis?o
4 / 4
# Pot?ncia
4^2
4**2
# M?dulo
10 %% 3
# Operadores Relacionais
# Atribuindo vari?veis
a = 7
a
b <- 5
b
# Operadores
a > 8
a < 8
a <= 8
a >= 8
a == 8
a != 8
# Operadores l?gicos
# Atribuindo vari?veis
a = 7
b = 5
# And
(a==8) & (b==6)
(a==7) & (b==5)
(a==8) & (b==5)
# Or
(a==8) | (b>5)
(a==8) | (b>=5)
# Not
a > 8
!(a > 8)
#################### 02 - Hands On ###################
#1- Atribuir valor para a vari?vel "a" igual ao resto da divis?o de 11 por 4
#2- Usar operadores relacionais para verificar se "a" ? maior que 1 e diferente de 2
a <- 11%%4
(a > 1) & (a != 2)
################################################
########### 03 - Tipos de Dados em R ###########
################################################
# Numeric - N?meros criados em R s?o do tipo num?rico
num = 2.5
num
num2 = 4
num2
x = -123
x
class(x)
# Convers?o de tipos Numeric
y = as.integer(num2)
class(y)
y
x2 = 3.14
x2
y2 = as.integer(x2)
y2
y3 = as.integer(3.94)
y3
as.integer('4.27')
as.integer("J")
as.integer(TRUE)
# Character
char1 = 'A'
char1
char2 = "bolha"
char2
# Logic
x = 1; y = 2
z = x > y
z
class(z)
u = TRUE; v = FALSE
class(u)
u & v
u | v
!u
class(as.integer(43))
class(as.integer('43'))
x <- as.integer(as.character('j'))
x <- as.integer("j")
x
# Opera??es com 0
5/0
# Erro
'J'/5
#################### 03 - Hands On ###################
#leia o comando abaixo
a <- 2.1
b = "2.9"
#1- Verifique se a parte inteira de "b" ? diferente do valor de "a".
#e atribua a vari?vel "z" o valor l?gico.
#2- Verifique se z ? igual a 1.
#########################################
########### 04 - Objetos em R ###########
#########################################
#tibble
# Vetor: possui 1 dimens?o e 1 tipo de dado
vetor0 = c(1.7)
vetor0
length(vetor0)
class(vetor0)
vetor1 <- c(1:10)
vetor1
length(vetor1)
class(vetor1)
vetor2 <- c("alfa","beta","gama")
vetor2
class(vetor2)
vetor3<-c(1,2,"alpha")
vetor3
length(vetor3)
class(vetor3)
mat<-matrix(c(1,0,0,1),nrow=2)
vetor4<-c("alpha",1,mat)
vetor4
length(vetor4)
class(vetor4)
# Matriz: possui 2 dimens?es e 1 tipo de dado
matriz1 <- matrix(1:10, nrow = 2)
matriz1
length(matriz1)
class(matriz1)
matriz1 <- matrix(1:10, nrow = 2,byrow=TRUE)
matriz1
matriz2 <- matrix(c(1,2,"um","dois"), nrow = 2, byrow=TRUE)
matriz2
length(matriz2)
class(matriz2)
# Data Frames: dados de diferentes tipos
# Maneira mais f?cil de explicar data frames s?o uma matriz com diferentes tipos de dados
df <- data.frame(c(10,20,30),c("futebol","basquete","nata??o"))
df
?data.frame
length(df)
class(df)
# Listas: cole??o de diferentes objetos
# Diferentes tipos de dados s?o poss?veis e comuns
vetor1<-c("alpha","beta","gama")
matriz1 <- matrix(1:10, nrow = 2)
lista1 <- list(matriz1,vetor1)
lista1
length(lista1)
class(lista1)
# Fun??es tamb?m s?o vistas como objetos em R
func1 <- function(x) {
var1 <- x * x
return(var1)
}
?return
func1(5)
class(func1)
lista2 <- list(matriz1,vetor1,func1)
lista2
#################### 04 - Hands On ###################
#1- criar um vetor num?rico e um vetor de characteres com 2 elementos cada
#2- criar um dataframe com os dois vetores anteriores.
#3- criar uma lista com 4 elementos (1 valor l?gico, 1 vetor, 1 matriz, 1 dataframe)
####################################
########### 05 - Vetores ###########
####################################
# Vetor de caracteres
vetor_caracter = c("Oi", "vetores")
vetor_caracter
# Vetor de floats
vetor_numerico = c(1.90, 45.3, 300.5)
vetor_numerico
# Vetor de valores l?gicos
vetor_logico = c(TRUE, FALSE, TRUE, FALSE, FALSE)
vetor_logico
# Vetor de n?meros inteiros
vetor_integer = c(2, 4, 6)
vetor_integer
# Utilizando rep()
vetor2 = rep(1:5,3)
vetor2
# Indexa??o de vetores
a <- c(1,2,3,4,5)
a
a[1]
b <- c("Jo?o","Maria","Jos?")
b
b[1]
b[2]
b[4]
# Combinando vetores
v1 = c(2, 3, 5)
v2 = c("aa", "bb", "cc", "dd", "ee")
temp = c(v1, v2)
v2[1:2]
v2[4:5]
c(v2[1:2],v2[4:5])
v2[-3]
matriz1 <- matrix(1:10, nrow = 2)
# Opera??ees com Vetores
x = c(1, 3, 5, 7)
y = c(2, 4, 6, 8)
x * 5
x + y
x - y
x * y
x / y
# Vetor Nomeado
vetor = c(29, 1.80)
vetor
names(vetor) = c("Idade","Altura")
vetor
vetor["Idade"]
#################### 05 - Hands On ###################
#1- Crie 1 vetor de inteiros com 500 elementos e 1 vetor de caracteres 500 elementos
#2- Crie um vetor a partir da combina??o dos 2 vetores anteriores
#3- Crie um vetor com o elemento da posi??o 121? e 750? do vetor combinado.
intvector = c(1:500); charvector = c(as.character(1:500))
combVector = c(intvector, charvector)
specPlaceV = c(combVector[121], combVector[750])
specPlaceL = list(as.integer( combVector[121] ), combVector[750])
#####################################
########### 06 - Matrizes ###########
#####################################
# Criando Matrizes
# N?mero de Linhas
matrix (c(1,2,3,4,5,6), nr = 2)
matrix (c(1,2,3,4,5,6), nr = 3)
matrix (c(1,2,3,4,5,6), nr = 6)
# N?mero de Colunas
matrix ( c ( 1,2,3,4,5,6), nc = 2)
# Help
?matrix
# Matrizes precisam ter um n?mero de elementos que seja m?ltiplo do n?mero de linhas
matrix ( c (1,2,3,4,5), nc = 2)
# Criando matrizes a partir de vetores e preenchendo a partir das linhas
meus_dados = c(1:10)
matrix(data = meus_dados, nrow = 5, ncol = 2, byrow = T)
matrix(data = meus_dados, nrow = 5, ncol = 2)
# Fatiando a Matriz
mat <- matrix(c(2,3,4,5), nr = 2)
mat
mat[1,2]
mat[2,2]
mat[1,3]
mat[,2]
# Criando uma matriz diagonal
matriz = 1:3
diag(matriz)
diag(9)
# Extraindo vetor de uma matriz diagonal
vetor = diag(matriz)
diag(vetor)
# Transposta da matriz
W <- matrix (c(2,4,8,12 ), nr = 2, ncol = 2)
W
U <- t(W)
U
# Obtendo uma matriz inversa
solve(W)
# Multiplica??o de elementos das Matrizes
mat1 <- matrix(c(2,3,4,5), nr = 2)
mat1
mat2 <- matrix(c(6,7,8,9), nr = 2)
mat2
mat1 * mat2
mat1 / mat2
mat1 + mat2
mat1 - mat2
# Multiplica??o das Matrizes
mat1%*%mat2
# Multiplicando Matriz com Vetor
x = c(1:4)
x
y <- matrix(c(2,3,4,5), nr = 2)
y
x * y
# Nomeando a Matriz
mat3 <- matrix(c('Futebol', 'Nata??o', 'Basquete', 'Piscina'), nr = 2)
mat3
dimnames(mat3) = (list( c("Linha1", "Linha2"), c("Coluna1", "Coluna2")))
mat3
# Identificando linhas e colunas no momento de cria??o da Matriz
matrix (c(1,2,3,4), nr = 2, nc = 2, dimnames = list(c("Linha 1", "Linha 2" ), c( "Coluna 1", " Coluna 2") ))
# Combinando Matrizes
mat4 <- matrix(c(2,3,4,5), nr = 2)
mat4
mat5 <- matrix(c(6,7,8,9), nr = 2)
mat5
cbind(mat4, mat5)
rbind(mat4, mat5)
# Desconstruindo a Matriz
c(mat4)
#################### 06 - Hands On ###################
#1- Crie uma matriz 2x3 e uma matriz 3x2 e fa?a a multiplica??o de matrizes
#2- Ache o inverso e a transposta da matriz encontra em "1".
matriz1 <- matrix(1:6,nrow=2)
matriz1
matriz2 <- matrix(7:12,nrow=3)
matriz2
matriz3 = matriz1 %*% matriz2
solve(matriz3)
###################################
########### 07 - Listas ###########
###################################
#str(iris)
# Use list() para criar listas
# Lista de strings
lista_caracter = list('A', 'Bem-vindo', 'DSA')
lista_caracter
# Lista de n?meros inteiros
lista_inteiros = list(2, 3, 4)
lista_inteiros
# Lista de floats
lista_numerico = list(1.90, 45.3, 300.5)
lista_numerico
# Lista de valores l?gicos
lista_logicos = list(TRUE, FALSE, FALSE)
lista_logicos
# Listas Compostas
lista_composta1 = list("A", 3, TRUE)
lista_composta1
lista1 <- list(1:10, c("Maria", "Jo?o", "Alfredo"), rnorm(10))
lista1
?rnorm
# Slicing da Lista
lista1[1]
lista1[c(1,2)]
lista1[2]
lista1[[2]][1]
lista1[[2]][1] = "Monica"
lista1
# Para nomear os elementos - Listas Nomeadas
names(lista1) <- c("inteiros", "caracteres", "num?ricos")
lista1
lista1$inteiros
lista1[[1]]
vec_num <- 1:4
vec_char <- c("A", "B", "C", "D")
lista2 <- list(Numeros = vec_num, Letras = vec_char)
lista2
# Nomear os elementos diretamente
lista2 <- list(elemento1 = 3:5, elemento2 = c(7.2,3.5))
lista2
# Trabalhando com elementos espec?ficos da lista
names(lista1) <- c("inteiros", "caracteres", "num?ricos")
lista1
lista1$caracteres
length(lista1)
length(lista1$inteiros)
lista1$inteiros
# Verificar o comprimento da lista
length(lista1)
# Podemos extrair um elemento espec?fico dentro de cada n?vel da lista
lista1$caracteres[2]
# Combinando 2 listas
lista3 <- c(lista1, lista2)
lista3
# Transformando um vetor em lista
v = c(1:3)
v
l = as.list(v)
l
# Unindo 2 elementos em uma lista
mat = matrix(1:4, nrow = 2)
mat
vec = c(1:9)
vec
lst = list(mat, vec)
lst
#################### 07 - Hands On ###################
#1- Criar uma lista com 1 vetor com 2 elementos e uma matrix identidade 2x2
#2- Nomear os elementos da lista
#2- Selecionar apenas a primeira linha da matriz a partir da lista
####################################
########### 08 - Strings ###########
####################################
#tiris = iris
#edit(tiris)
# String
texto <- "Isso ? uma string!"
texto
x = as.character(3.14)
x
class(x)
# Concatenando Strings
nome = "Barack"; sobrenome = "Obama"
paste(nome, sobrenome)
paste0(nome, sobrenome)
cat(nome, sobrenome)
# Formatando a sa?da
nome = "Barack Obama"
anos = 8
sprintf("%s governou os EUA por %d anos", nome, anos)
# Extraindo parte da string
texto <- "Isso ? uma string!"
substr(texto, start=12, stop=17)
?substr
# Contando o n?mero de caracteres
nchar(texto)
# Alterando a capitaliza??o
tolower("Isso ? uma string!")
toupper("Isso ? uma string!")
# Usando stringr
library(stringr)
# Dividindo uma string em caracteres
strsplit("Isso ? uma string!", NULL)
?strsplit
# Dividindo uma string em caracteres, ap?s o caracter espa?o
strsplit("Histogramas e Elementos de Dados", " ")
# Trabalhando com strings
string2 <- c("Precisamos testar outras strings - @???!§$",
"An?lise de Dados em R")
string2
# Podemos contar quantas vezes um caracter aparece no texto
str_count(string2, "s")
# Localiza a primeira e ?ltima posi??o em que o caracter aparece na string
str_locate_all(string2, "s")
# Substitui a primeira ocorr?ncia de um caracter
str_replace(string2, "\\s", "")
# Substitui todas as ocorr?ncias de um caracter
str_replace_all(string2, "\\s", "")
#################### 08 - Hands On ###################
#1-Leia o c?digo abaixo:
string1 <- "Campos inundados, rios cheios e estradas bloqueadas:"
string2 = "A passagem do furac?o Florence, que deixou danos de bilh?es de d?lares."
#2- Concatene os 2 strings numa 3? string
#3- Localize a palavra "furac?o" na 3? string
#4- substitua a palavra "furac?o" por "tempestade tropical" na 3? string
#######################################
########### 9 - DataFrames ###########
#######################################
# Criando um dataframe vazio
df <- data.frame()
class(df)
df
# Criando vetores vazios
nomes <- character()
idades <- numeric()
codigos <- integer()
df <- data.frame(c(nomes, idades, codigos))
df
# Criando vetores
pais = c("EUA", "Dinamarca", "Holanda", "Espanha", "Brasil")
nome = c("Maur?cio", "Pedro", "Aline", "Beatriz", "Marta")
altura = c(1.78, 1.72, 1.63, 1.59, 1.63)
codigo = c(5001, 2183, 4702, 7965, 8890)
# Criando um dataframe de diversos vetores
pesquisa = data.frame(pais, nome, altura, codigo)
pesquisa
# Adicionando um novo vetor a um dataframe existente
olhos = c("verde", "azul", "azul", "castanho", "castanho")
pesq = cbind(pesquisa, olhos)
pesq
# Informa??es sobre o dataframe
str(pesq)
dim(pesq)
length(pesq)
# Obtendo um vetor de um dataframe
pesq$pais
pesq$nome
pesq$olhos
# Extraindo um ?nico valor
pesq[1,1]
pesq[3,2]
#editar data.frame
pesq = edit(pesq)
pesq
# N?mero de Linhas e Colunas
nrow(pesq)
ncol(pesq)
# Primeiros elementos do dataframe
head(pesq)
head(mtcars)
# ?ltimos elementos do dataframe
tail(pesq)
tail(mtcars)
# Data frames built-in do R
?mtcars
mtcars
# Filtro para um subset de dados que atendem a um crit?rio
pesq[altura < 1.60,]
pesq[altura < 1.60, c('codigo', 'olhos')]
pesq
# Dataframes Nomeados
names(pesq) <- c("Pa?s", "Nome", "Altura", "C?digo", "Olhos")
pesq
colnames(pesq) <- c("Var 1", "Var 2", "Var 3", "Var 4", "Var 5")
rownames(pesq) <- c("Obs 1", "Obs 2", "Obs 3", "Obs 4", "Obs 5")
pesq
# Importando arquivos
# read.xls() - Excel
# read.mtp() - Minitab
# read.spss() - SPSS
# read.table() - Arquivos txt
# read.csv() - Arquivos csv
# read.delim() - Leitura de arquivos delimitados
?read.csv
df2 <- data.frame(read.csv(file = 'dframe.csv', header = TRUE, sep = ","))
head(df2)
summary(df2)
df2$Diabete
df2$status
df2$Status
plot(df2$Admdate)
summary(mtcars$mpg)
plot(mtcars$mpg, mtcars$disp)
plot(mtcars$mpg, mtcars$wt)
# Combinando dataframes
df3 <- merge(pesq, df2)
df3
#################### 09 - Hands On ###################
###################################################
########### 10 - Estruturas de Controle ###########
###################################################
# If-else
x = 25
if (x < 30)
{"Este n?mero ? menor que 30"}
# Chaves n?o s?o obrigat?rios, mas altamente recomendados
if (x < 30)
"Este n?mero ? menor que 30"
# Else
if (x < 7) {
"Este n?mero ? menor que 7"
} else {
"Este n?mero n?o ? menor que 7"
}
# Comandos podem ser ainhados
x = 7
if (x < 7) {
"Este n?mero ? menor que 7"
} else if(x == 7) {
"Este ? o n?mero 7"
}else{
"Este n?mero n?o ? menor que 7"
}
# Ifelse
x = 5
ifelse (x < 6, "Correto!", NA)
x = 9
ifelse (x < 6, "Correto!", NA)
# Express?es ifelse aninhadas
x = c(7,5,4)
ifelse(x < 5, "Menor que 5",
ifelse(x == 5, "Igual a 5", "Maior que 5"))
# Estruturas if dentro de fun??es
func1 <- function(x,y){
ifelse(y < 7, x + y, "N?o encontrado")
}
func1(4,2)
func1(40,7)
# Rep
rep(rnorm(10), 5)
# Repeat
x = 1
repeat {
x = x + 3
if (x > 99)
break
print(x)}
# Loop For
for (i in 1:20) {print(i)}
for (q in rnorm(10)) {print(q)}
# Ignora alguns elementos dentro do loop
for(i in 1:22){
if(i == 13 | i == 15)
next
print (i)}
# Interromper o loop
for(i in 1:22){
if(i == 13)
break
print (i)}
# Loop While
x = 1
while(x < 5){
x = x + 1
print(x)
}
# O loop while n?o ser? executado
y = 6
while(y < 5){
y = y+10
print(y)
}
#################### 10 - Hands On ###################
#1- Imprima os valores pares de 100 a 200.
####################################
########### 11 - Fun??es ###########
####################################
# Fun??es Built-in
abs(-43)
sum(c(1:5))
mean(c(1:5))
round(c(1.1:5.8))
rev(c(1:5))
seq(1:5)
sort(c(4,9,3,6))
append(c(1:5), 6)
vec1 <- c(1.5, 2.5, 8.4, 3.7, 6.3)
vec2 <- sort(vec1)
vec2
# Fun??es dentro de fun??es
plot(rnorm(10))
mean(c(abs(vec1), abs(vec2)))
# Criando fun??es
myfunc <- function(x) { x + x }
myfunc(10)
class(myfunc)
myfunc2 <- function(a, b) {
valor = a ^ b
print(valor)
}
myfunc2(3, 2)
jogando_dados <- function() {
num <- sample(1:6, size = 1) #Local
num
}
jogando_dados()
#################### 11 - Hands On ###################
#1- Crie uma fun??o que calcule 10 n?meros aleat?rios de
#1 a 10 e calcule a m?dia desses n?meros
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment