Created
October 17, 2018 15:58
-
-
Save JosielFaleiros/595d36813229b8a4e5d0bfbb27b514af to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
################################################# | |
########### 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