Escolar Documentos
Profissional Documentos
Cultura Documentos
Lista do Módulo 1
Anna Karolinna de Sousa Machado
Uberlândia
2022
Módulo 1
Exercício 1
Crie uma função em R para fazer a conversão entre unidades de temperatura (De
Kelvin para Celcius). Forneça um exemplo de uso.
#Código do exercício 1
ConvK_C <- function(x)
{
C = x - 273 #Função que converte kelvin em celsius
return(C)
}
a <- ConvK_C(500)
a
## [1] 227
Exercício 2
Crie um loop que imprima os valores ímpares no intervalo de 1 a 100.
#Código do exercício 2
num <- 1
while(num<100){
print(num)
num <- num + 2
}
## [1] 1
## [1] 3
## [1] 5
## [1] 7
## [1] 9
## [1] 11
## [1] 13
## [1] 15
## [1] 17
## [1] 19
## [1] 21
## [1] 23
## [1] 25
## [1] 27
## [1] 29
## [1] 31
## [1] 33
## [1] 35
## [1] 37
## [1] 39
## [1] 41
## [1] 43
## [1] 45
## [1] 47
## [1] 49
## [1] 51
## [1] 53
## [1] 55
## [1] 57
## [1] 59
## [1] 61
## [1] 63
## [1] 65
## [1] 67
## [1] 69
## [1] 71
## [1] 73
## [1] 75
## [1] 77
## [1] 79
## [1] 81
## [1] 83
## [1] 85
## [1] 87
## [1] 89
## [1] 91
## [1] 93
## [1] 95
## [1] 97
## [1] 99
Exercício 3
Qual a diferença entre os operadores “&”, “&&”, “|” e “||”? Ilustre o uso destes
operadores por meio de um programa exemplo.
#Código do exercício 3
# O operador "&" executa a operação elemento a elemento e tem o significado de um elemento AN
D outro elemento, tal que só é TRUE se ambos elementos forem iguais;
# O operador "|" executa a operação elemento a elemento e tem o significado de um elemento OR
outro elemento, tal que só é FALSE se ambos elementos forem FALSE;
# O operador "&&" executa a operação considerando apenas o primeiro elemento do vetor e tem o
significado de um elemento AND outro elemento
# O operador "||" executa a operação considerando apenas o primeiro elemento do vetor e tem o
significado de um elemento OR outro elemento
v1 <- c(FALSE, FALSE, 0, 5, 1)
v2 <- c(TRUE, FALSE, 0,0, 1)
v1&v2
v1&&v2
## [1] FALSE
v1||v2
## [1] TRUE
Exercício 4
Faça um programa que exemplifique o uso do operador “%in%”
#Código do exercício 4
x <- c(3:30)
y <- c(18:40)
## [1] 18 19 20 21 22 23 24 25 26 27 28 29 30
## [1] 18 19 20 21 22 23 24 25 26 27 28 29 30
Exercício 5
Dado a string “O Sol é muito maior do que a Terra”, faça um programa que:
library("stringr")
frase <- c("O Sol é muito maior do que a Terra")
frase
Letra a
Letra b
## [1] 34
str_length(fraseN)
## [1] 32
Letra c
str_sort(fraseNn)
Letra d
d. Faça uma comparação usando o operador & entre a string alterada e
original. Explique o resultado obtido.
Letra e
## O S o l é m u i t o
## TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## m a i o r d o q u e
## TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## a T e r r a
## TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
Exercício 6
Refaça todos os exemplos apresentados neste módulo Parte 1.
#Código do exercício 6
## [1] "character"
v <- 100
class(v)
## [1] "numeric"
v <- "100"
class(v)
## [1] "character"
v <- F
class(v)
## [1] "logical"
v <- 100L
class(v)
## [1] "integer"
v <- 6 + 8i
class(v)
## [1] "complex"
minhaVariavel <- 1
# 2minhaVariavel <- 1 (não é valido) - não pode começar nome de variável com número
m_var <- 1
# o prefixo "." no R cria um objeto oculto. Para visualizá-lo digite ls(all.names = TRUE)
.mvar <- 1
# _m_var <- 1 (não é válido) - não pode começar nome de variável com caracter especial
## [1] 100
y <- 200 + 300 # atribui o valor 500 a variável y
print(y)
## [1] 500
## [1] 600
100 -> x
print(x)
## [1] 100
## [1] 3 4 5
## 3 4 5
ls()
# Adição
a1 <- c(9, 0, -4)
a2 <- c(8, 2, -1)
print(a1 + a2)
## [1] 17 2 -5
# Subtração
s1 <<- c(1, 2, 3)
c(4, 5, 2) ->> s2
print(s1-s2)
## [1] -3 -3 1
# Multiplicação
m1 <- c(2, 5, 8)
m2 <- c(3, 6, 9)
print(m1*m2)
## [1] 6 30 72
#Divisão
d1 <- c(6,8,9)
d2 <- c(2,4,3)
print(d1/d2)
## [1] 3 2 3
#Resto da divisão
r1 <- c(10, 13, 19)
r2 <- c(3, 4, 5)
print(r1%%r2)
## [1] 1 1 4
#Quociente da divisão
r1 <- c(10, 13, 19)
r2 <- c(3, 4, 5)
print(r1 %/% r2)
## [1] 3 3 3
#Exponenciação
e1 <- c(2, 3, 4)
e2 <- c(3, 2, 2)
print(e1^e2)
## [1] 8 9 16
# Maior que
g1 <- c(6,8,9)
g2 <- c(9,2,6)
print(g1>g2)
# Igualdade
e1 <- c(3, 6, 9)
e2 <- c(2, 7, 9)
print(e1==e2)
e1 <- c(3, 6, 9)
e2 <- c(2, 7, 9)
print(e1 >= e2)
#Menor ou igual a
e1 <- c(3, 6, 9)
e2 <- c(2, 7, 9)
print(e1 <= e2)
x&y
x&&y
## [1] FALSE
x|y
x||y
## [1] TRUE
# Operador (:)
# Exemplo 1
v <- 1:8
print(v)
## [1] 1 2 3 4 5 6 7 8
# Exemplo 2
1:3==1:3 && 1:3==1:3
## Warning in 1:3 == 1:3 && 1:3 == 1:3: 'length(x) = 3 > 1' in coercion to
## 'logical(1)'
## Warning in 1:3 == 1:3 && 1:3 == 1:3: 'length(x) = 3 > 1' in coercion to
## 'logical(1)'
## [1] TRUE
# Exemplo 3
x <- 1:5
x[x<5]
## [1] 1 2 3 4
## [1] 3 4
## integer(0)
# Operador membro
# Exemplo 1
v1 <- 6
v2 <- 15
m <- 1:8
print(v1 %in% m)
## [1] TRUE
print(v2 %in% m)
## [1] FALSE
# Exemplo 2
x <- 1:10
print(x)
## [1] 1 2 3 4 5 6 7 8 9 10
y <- c(1,3:11)
print(y)
## [1] 1 3 4 5 6 7 8 9 10 11
## [1] 1 3 4 5 6 7 8 9 10
## [1] 1 3 4 5 6 7 8 9 10
# CUIDADO
y[x%in%y] # neste caso a indexação não é correta!
## [1] 1 4 5 6 7 8 9 10 11
# If
m <- 200
n <- 100
if(m>n){
print("m é maior do que n")
}
# If ... else
m <- 200
n <- 100
if(m<n){
print("m é menor do que n")
} else {
print("m é maior do que n")
}
## [1] "m é maior do que n"
#switch
var <- "vegetal"
switch(var,
fruit = "maçã",
vegetal = "espinafre",
carne = "frango")
## [1] "espinafre"
# Repeat
var <- c("Excelente")
num <- 0
repeat{
print(var)
num <- num + 1
if(num > 5){
break # para o loop
}
}
## [1] "Excelente"
## [1] "Excelente"
## [1] "Excelente"
## [1] "Excelente"
## [1] "Excelente"
## [1] "Excelente"
#while
var <- c("Oi")
num <- 0
while(num<5){
print(var)
num <- num + 1
}
## [1] "Oi"
## [1] "Oi"
## [1] "Oi"
## [1] "Oi"
## [1] "Oi"
#for
var <- c(1:5)
# A melhor forma de interpretar o código abaixo é: execute o trecho dentro do loop para cada
valor de var
for(num in var)
{
print("oie")
## [1] "oie"
## [1] "oie"
## [1] "oie"
## [1] "oie"
## [1] "oie"
# A melhor forma de interpretar o código abaixo é: execute o trecho dentro do loop para cada
valor de i
for(i in c(1, 2, 3)){
#função
## [1] 300
## [1] 700
a <- myfunction()
print(a)
## [1] 8
# Funções built-in
print(sum(200, 100))
## [1] 300
print(abs(-1000))
## [1] 1000
print(max(100, 200))
## [1] 200
print(min(100, 200))
## [1] 100
print(sqrt(81))
## [1] 9
## [1] 2 3 5 8 9
Exercício 7
Refaça todos os exemplos apresentados neste módulo Parte 2.
#Código do exercício 7
##Vetores
# Exemplo de vetor do tipo inteiro
v.inteiro <- integer(8)
v.inteiro <- c(1:9)
# Exemplo de vetor do tipo double
v.double <- numeric(6)
v.double <- c(2.5, c(1:9))
# Exemplo de vetor do tipo logical
v.logical <- logical(10)
v.logical <- c(T, T, F, F, T, F, T, T, T, F)
# Exemplo de vetor do tipo complexo
v.complex <- complex(10)
v.complex <- c(1+2i, 3+1i, 5-4i, 9-0.1i, 10-54i, 100-1i, -2-2i, 3+3i, 10-0i, 8)
# Exemplo de vetor do tipo raw
v.raw <- raw(10)
v.raw[1] <- as.raw(10)
v.raw[2] <- as.raw(5)
print("céu azul") # "céu azul" é um vetor de caracteres
## [1] "98.1"
## [1] 2 3 4 5 6 7 8
print (c(3,4,5))
## [1] 3 4 5
## [1] 1
## [1] "banana"
## [1] "laranja"
v1 <- c(1, 2, 3)
v2 <- c(4, 5, 6)
#Operações com vetores
print(v1 + v2)
## [1] 5 7 9
print(v1 - v2)
## [1] -3 -3 -3
print(v1 * v2)
## [1] 4 10 18
print(v1/v2)
v1 <- c(4,5,6,7,8,9)
v2 <- c(2,3)
r <- v1 + v2 # o resultado é que o vetor de baixo soma em sequência o de cima, cria um vetor
repetido
print(r) # observe que v2 é tratado como c(2,3,2,3,2,3). v1 tem que ser múltiplo de v2
## [1] 6 8 8 10 10 12
print(v2 - v1)
## [1] -2 -2 -4 -4 -6 -6
v<-c(1:10)
print(sort(v, decreasing = T)) #faz a ordenação do vetor.
## [1] 10 9 8 7 6 5 4 3 2 1
## [1] -1.0 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0.0 0.1 0.2 0.3 0.4
## [16] 0.5 0.6 0.7 0.8 0.9 1.0
##Listas
ml <- list("a", "b", "c", "d")
print(ml)
## [[1]]
## [1] "a"
##
## [[2]]
## [1] "b"
##
## [[3]]
## [1] "c"
##
## [[4]]
## [1] "d"
## [[1]]
## [1] "c"
## [[1]]
## [1] "a"
##
## [[2]]
## [1] "b"
##
## [[3]]
## [1] "c"
##
## [[4]]
## [1] "d"
##
## [[5]]
## [1] 48.22
## [[1]]
## [1] "a"
##
## [[2]]
## [1] "b"
##
## [[3]]
## [1] "c"
##
## [[4]]
## [1] "d"
ml[2] <- "atualizando o segundo elemento" #atualiza o elemento na posição [2], permite altera
r seu valor
print(ml[2])
## [[1]]
## [1] "atualizando o segundo elemento"
## [[1]]
## [1] "a"
##
## [[2]]
## [1] "b"
##
## [[3]]
## [1] 2
##
## [[4]]
## [1] "d"
##
## [[5]]
## [1] "e"
##
## [[6]]
## [1] 3
# Matriz
v <- c(1:12)
vnames <- list(
c("row1", "row2"), # nome das linhas
c("col1", "col2", "col3","col4","col5","col6")) # nome das colunas
m <- matrix(v, nrow = 2, ncol = 6, byrow = TRUE, dimnames = vnames) #como byrow é true, preen
che por linhas
print(m)
m <- matrix(v, nrow = 2, ncol = 6, byrow = FALSE, dimnames = vnames) #como byrow é false, pre
enche por colunas
print(m)
## col1 col2 col3 col4 col5 col6
## row1 1 3 5 7 9 11
## row2 2 4 6 8 10 12
## [1] 6
## [1] 7
# criando matrizes
m2 <- matrix(c(4,5,6,7,8,9), nrow = 2) #distribui os elementos informados em 2 linhas (nrow=
2)
print(m2)
## c1 c2 c3 c4
## r1 1 4 7 10
## r2 2 5 8 11
## r3 3 6 9 12
#Array
print(array(1:10))
## [1] 1 2 3 4 5 6 7 8 9 10
## , , 1
##
## [,1] [,2] [,3] [,4]
## [1,] 1 3 5 7
## [2,] 2 4 6 8
##
## , , 2
##
## [,1] [,2] [,3] [,4]
## [1,] 9 11 13 15
## [2,] 10 12 14 16
rowname <- c("r1", "r2", "r3") #Definir o nome de cada elemento de um array
colname <- c("c1", "c2", "c3")
matrixname <- c("m1", "m2")
marray <- array(1:18, dim = c(3,3,2),
dimnames = list(rowname,
colname,
matrixname))
print(marray)
## , , m1
##
## c1 c2 c3
## r1 1 4 7
## r2 2 5 8
## r3 3 6 9
##
## , , m2
##
## c1 c2 c3
## r1 10 13 16
## r2 11 14 17
## r3 12 15 18
## [1] 8
## c1 c2 c3
## r1 1 4 7
## r2 2 5 8
## r3 3 6 9
## c1 c2 c3
## 2 5 8
## [1] a1 a2 a3 a4 a5
## Levels: a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
## [1] a c b c a
## Levels: a b c
fator <- factor(1:5, levels = 1:3, labels=c("a", "b", "c")) #acima de 4 ele não reconhece os
outros dados
print(fator)
## [1] A B C
## Levels: C B A
## [1] A A B B C C D D
## Levels: A B C D
## [1] A A A A A B B B B B C C C C C D D D D D
## Levels: A B C D
nlevels(sexo)
## [1] 2
## [1] l n n i l
## Levels: n < l < i
##Data Frames
# Exemplo de criação de um data frame
df <- data.frame(
id = c(1:5),
name = c("Anna", "Luiza", "Adriano", "Iuri", "Carla"),
score = c(85,99,95,92,96),
year = c("2009", "2002", "2008", "2006", "2007"),
stringsAsFactors = FALSE #pode converter as strings para fatores
)
print(df)
## [1] 1 2 3 4 5
## [1] 85 99 95 92 96
)
df <- rbind(df, newRows)
print(df)
## id name age
## [1,] "001" "Anna" "18"
## [2,] "002" "Judy" "16"
## [3,] "003" "Tony" "20"
## [4,] "004" "Nacy" "19"
Exercício 8
Faça um programa em R que avalie o nível de atividade física dos estudantes da
disciplina de Processamento de Sinais Biomédicos. As seguintes variáveis devem
ser consideradas: Identificador do participante (id) Curso do participante (cp)
Período do curso (pc) Idade (idade) Peso (peso) Altura (altura) Nível de atividade
física (nat) nat = “nula” - nenhuma vez por semana nat = “baixa” - de uma a duas
vezes por semana nat = “moderada” - três a cinco vezes por semana nat =
“avançada” - acima de cinco vezes por semana Construa um data frame que
armazene as variáveis coletadas e faça os seguintes cálculos: * Número de
participantes por cada uma das categorias de nível de atividade fisica (nat) *
Percentual de participantes por cada uma das categorias de nível de atividade
fisica (nat) * Valor médios das variáveis: idade, peso e altura (calcular os valore
médios globais, por período de curso e por curso).
#Código do exercício 8
df <- data.frame(
id = c(1:8),
name = c("Anna","Luiza","Adriano","Iolanda","Róger","Felipe","Iuri", "Caio"),
curso = c("Engenharia","Moda","Engenharia","Administração","Administração", "Moda", "Nutriçã
o", "Engenharia"),
periodo = c(8,5,7,10,9,6,5,8),
idade = c(23,20,22,21,20,22,23,23),
peso = c(65,60,70,75,77,77,60,66),
altura = c(167,170,175,175,177,162,165,177),
nat = c("moderada","nula","nula","baixa","moderada","avançada","avançada","moderada"),
stringsAsFactors = TRUE
)
df
## [1] 21.75
print(peso_media)
## [1] 68.75
print(altura_media)
## [1] 171
## [1] 22.66667
print (mean(periodo$peso))
## [1] 67
## [1] 173
## [1] 21
print (mean(periodo$peso))
## [1] 68.5
## [1] 166
## [1] 20.5
print (mean(periodo$peso))
## [1] 76
## [1] 176
## [1] 23
print (mean(periodo$peso))
## [1] 60
## [1] 165
Exercício 9
Faça o tutorial sobre o package dplyr disponível em
https://www.listendata.com/2016/08/dplyr-tutorial.html.
#Código do exercício 9
library(dplyr) # carregando a biblioteca
##
## Attaching package: 'dplyr'
dados = read.csv("https://raw.githubusercontent.com/deepanshu88/data/master/sampledata.csv")
dados
## Index State Y2002 Y2003 Y2004 Y2005 Y2006 Y2007 Y2008 Y2009
## 1 V Vermont 1146902 1832249 1492704 1579265 1332048 1563537 1123567 1618583
## 2 F Florida 1964626 1468852 1419738 1362787 1339608 1278550 1756185 1818438
## 3 O Ohio 1802132 1648498 1441386 1670280 1534888 1314824 1516621 1511460
## Y2010 Y2011 Y2012 Y2013 Y2014 Y2015
## 1 1326369 1792600 1714960 1146278 1282790 1565924
## 2 1198403 1497051 1131928 1107448 1407784 1170389
## 3 1585465 1887714 1227303 1840898 1880804 1573117
x = distinct(dados, Index, .keep_all= TRUE) #A função .keep_all é usada para reter todas as o
utras variáveis no quadro de dados de saída.
x
x = distinct(dados, Index, Y2010, .keep_all= TRUE) #determina a exclusivadade com base em dua
s variáveis
x
meusdados3 = select(meusdados, -starts_with("Y")) #variáveis que não começam com a letra "Y"
meusdados3
meusdados8 = filter(dados, Index %in% c("A", "C") & Y2002 >= 1300000 ) #busca no indice a e c
e receita a cima de 1300000
meusdados8
meusdados9 = filter(dados, Index %in% c("A", "C") | Y2002 >= 1300000) #excerce a função ou
meusdados9
## Y2015_mean Y2015_med
## 1 1588297 1627508
set.seed(222)
mydata <- data.frame(X1=sample(1:100,100), X2=runif(100))
summarise_at(mydata,vars(X1,X2), function(x) var(x - mean(x)))
## X1 X2
## 1 841.6667 0.07920067
## X1 X2
## 1 841.6667 0.07920067
numdata = mydata[sapply(mydata,is.numeric)]
summarise_all(numdata, funs(n(),mean,median))
## nlevels nmiss
## 1 0 0
dt = dados %>% select(Index, State) %>% sample_n(10) #10 dados aleatorios de acordo com o ind
ice e estado
dt
## Index State
## 1 A Arizona
## 2 M Michigan
## 3 V Virginia
## 4 I Idaho
## 5 O Oklahoma
## 6 W Wyoming
## 7 A Alabama
## 8 H Hawaii
## 9 K Kentucky
## 10 M Mississippi
## # A tibble: 19 × 5
## Index Y2011_n Y2012_n Y2011_mean Y2012_mean
## <chr> <int> <int> <dbl> <dbl>
## 1 A 4 4 1432642. 1455876
## 2 C 3 3 1750357 1547326
## 3 D 2 2 1336059 1981868.
## 4 F 1 1 1497051 1131928
## 5 G 1 1 1851245 1850111
## 6 H 1 1 1902816 1695126
## 7 I 4 4 1690170. 1687056.
## 8 K 2 2 1489353 1899772.
## 9 L 1 1 1210385 1234234
## 10 M 8 8 1582714. 1586091.
## 11 N 8 8 1448351. 1470316.
## 12 O 3 3 1882111. 1602463.
## 13 P 1 1 1483292 1290329
## 14 R 1 1 1781016 1909119
## 15 S 2 2 1381724 1671744
## 16 T 2 2 1724080. 1865786.
## 17 U 1 1 1288285 1108281
## 18 V 2 2 1482143 1488651
## 19 W 4 4 1711341. 1660192.
## # A tibble: 6 × 16
## # Groups: Index [3]
## Index State Y2002 Y2003 Y2004 Y2005 Y2006 Y2007 Y2008 Y2009 Y2010
## <chr> <chr> <int> <int> <int> <int> <int> <int> <int> <int> <int>
## 1 A Alabama 1.30e6 1.32e6 1.12e6 1.49e6 1.11e6 1.44e6 1.95e6 1.94e6 1.24e6
## 2 A Alaska 1.17e6 1.96e6 1.82e6 1.45e6 1.86e6 1.47e6 1.55e6 1.44e6 1.63e6
## 3 C Californ… 1.69e6 1.68e6 1.89e6 1.48e6 1.74e6 1.81e6 1.49e6 1.66e6 1.62e6
## 4 C Colorado 1.34e6 1.88e6 1.89e6 1.24e6 1.87e6 1.81e6 1.88e6 1.75e6 1.91e6
## 5 I Idaho 1.35e6 1.44e6 1.74e6 1.54e6 1.12e6 1.77e6 1.34e6 1.75e6 1.44e6
## 6 I Illinois 1.51e6 1.53e6 1.49e6 1.26e6 1.54e6 1.75e6 1.87e6 1.66e6 1.42e6
## # … with 5 more variables: Y2011 <int>, Y2012 <int>, Y2013 <int>, Y2014 <int>,
## # Y2015 <int>
## # A tibble: 3 × 2
## # Groups: Index [3]
## Index Y2015
## <chr> <int>
## 1 A 1647724
## 2 C 1330736
## 3 I 1583516
## # A tibble: 3 × 2
## # Groups: Index [3]
## Index Y2015
## <chr> <int>
## 1 A 1647724
## 2 C 1330736
## 3 I 1583516
Exercício 10
Faça o tutorial sobre o package stringr disponível em
https://cran.rstudio.com/web/packages/stringr/vignettes/stringr.html
#Código do exercício 10
library("stringr")
str_length("teste")
## [1] 5
x %>%
str_trunc(18) %>% #para que o espaço funcione em strings pequenas
str_pad(10, "right")
str_to_title(x)
str_to_lower(x)
## [1] "edição de strings"
## [1] 3 1 2
strings <- c("apple", "219 733 8965", "329-293-8753", "Work: 579-499-7527; Home: 543.355.367
9")
phone <- "([2-9][0-9]{2})[- .]([0-9]{3})[- .]([0-9]{4})"
str_detect(strings, phone)
str_subset(strings, phone)
## start end
## [1,] NA NA
## [2,] 1 12
## [3,] 1 12
## [4,] 7 18
str_locate_all(strings, phone)
## [[1]]
## start end
##
## [[2]]
## start end
## [1,] 1 12
##
## [[3]]
## start end
## [1,] 1 12
##
## [[4]]
## start end
## [1,] 7 18
## [2,] 27 38
str_extract_all(strings, phone)
## [[1]]
## character(0)
##
## [[2]]
## [1] "219 733 8965"
##
## [[3]]
## [1] "329-293-8753"
##
## [[4]]
## [1] "579-499-7527" "543.355.3679"
## [,1] [,2]
## [1,] "" ""
## [2,] "219 733 8965" ""
## [3,] "329-293-8753" ""
## [4,] "579-499-7527" "543.355.3679"
str_match(strings, phone)
str_match_all(strings, phone)
## [[1]]
## [,1] [,2] [,3] [,4]
##
## [[2]]
## [,1] [,2] [,3] [,4]
## [1,] "219 733 8965" "219" "733" "8965"
##
## [[3]]
## [,1] [,2] [,3] [,4]
## [1,] "329-293-8753" "329" "293" "8753"
##
## [[4]]
## [,1] [,2] [,3] [,4]
## [1,] "579-499-7527" "579" "499" "7527"
## [2,] "543.355.3679" "543" "355" "3679"
## [1] "apple"
## [2] "XXX-XXX-XXXX"
## [3] "XXX-XXX-XXXX"
## [4] "Work: XXX-XXX-XXXX; Home: 543.355.3679"
## [1] "apple"
## [2] "XXX-XXX-XXXX"
## [3] "XXX-XXX-XXXX"
## [4] "Work: XXX-XXX-XXXX; Home: XXX-XXX-XXXX"
str_split("a-b-c", "-")
## [[1]]
## [1] "a" "b" "c"
str_split_fixed("a-b-c", "-", n = 2)
## [,1] [,2]
## [1,] "a" "b-c"
## [1] FALSE
str_detect(a1, fixed(a2))
## [1] FALSE
str_detect(a1, coll(a2))
## [1] TRUE
## [[1]]
## [1] "Essa" "é" "uma" "frase" "teste"
str_count(x, boundary("word"))
## [1] 5
str_extract_all(x, boundary("word"))
## [[1]]
## [1] "Essa" "é" "uma" "frase" "teste"
str_split(x, "")
## [[1]]
## [1] "E" "s" "s" "a" " " "é" " " "u" "m" "a" " " "f" "r" "a" "s" "e" " " "t" "e"
## [20] "s" "t" "e"
str_count(x, "")
## [1] 22
Exercício 11
Faça novamente o exercício 8 da Parte 2, utilizando a biblioteca dplyr.
#Código do exercício 11
library(dplyr)
df <- data.frame(
id = c(1:8),
name = c("Anna","Luiza","Adriano","Iolanda","Róger","Felipe","Iuri", "Caio"),
curso = c("Engenharia","Moda","Engenharia","Administração","Administração", "Moda", "Nutriç
ão", "Engenharia"),
periodo = c(8,5,7,10,9,6,5,8),
idade = c(23,20,22,21,20,22,23,23),
peso = c(65,60,70,75,77,77,60,66),
altura = c(167,170,175,175,177,162,165,177),
nat = c("moderada","nula","nula","baixa","moderada","avançada","avançada","moderada"),
stringsAsFactors = TRUE
)
df
count(df, nat)
## nat n
## 1 avançada 2
## 2 baixa 1
## 3 moderada 3
## 4 nula 2
df%>% count(nat)%>%mutate(freq=n/ sum(n)) #mostra a porcentagem para cada nat
## nat n freq
## 1 avançada 2 0.250
## 2 baixa 1 0.125
## 3 moderada 3 0.375
## 4 nula 2 0.250
## idade_media
## 1 21.75
## peso_media
## 1 68.75
summarise(df, altura_media=mean(altura))
## altura_media
## 1 171
## # A tibble: 6 × 3
## periodo idade_media periodo_medio
## <dbl> <dbl> <dbl>
## 1 8 23 8
## 2 6 22 6
## 3 7 22 7
## 4 5 21.5 5
## 5 10 21 10
## 6 9 20 9
peso_md = df%>%
group_by(periodo)%>%
summarise(peso_media = mean(peso, na.rm=TRUE),
periodo_medio = mean(periodo, na.rm = TRUE))%>%
arrange(desc(peso_media))
print(peso_md)
## # A tibble: 6 × 3
## periodo peso_media periodo_medio
## <dbl> <dbl> <dbl>
## 1 6 77 6
## 2 9 77 9
## 3 10 75 10
## 4 7 70 7
## 5 8 65.5 8
## 6 5 60 5
altura_md = df%>%
group_by(periodo)%>%
summarise(altura_media = mean(altura, na.rm=TRUE),
periodo_medio = mean(periodo, na.rm = TRUE))%>%
arrange(desc(altura_media))
print(altura_md)
## # A tibble: 6 × 3
## periodo altura_media periodo_medio
## <dbl> <dbl> <dbl>
## 1 9 177 9
## 2 7 175 7
## 3 10 175 10
## 4 8 172 8
## 5 5 168. 5
## 6 6 162 6
## # A tibble: 4 × 3
## curso idade_media curso_medio
## <fct> <dbl> <dbl>
## 1 Nutrição 23 5
## 2 Engenharia 22.7 7.67
## 3 Moda 21 5.5
## 4 Administração 20.5 9.5
peso_md = df%>%
group_by(curso)%>%
summarise(peso_media = mean(peso, na.rm=TRUE),
curso_medio = mean(periodo, na.rm = TRUE))%>%
arrange(desc(peso_media))
print(peso_md)
## # A tibble: 4 × 3
## curso peso_media curso_medio
## <fct> <dbl> <dbl>
## 1 Administração 76 9.5
## 2 Moda 68.5 5.5
## 3 Engenharia 67 7.67
## 4 Nutrição 60 5
altura_md = df%>%
group_by(curso)%>%
summarise(altura_media = mean(altura, na.rm=TRUE),
curso_medio = mean(periodo, na.rm = TRUE))%>%
arrange(desc(altura_media))
print(altura_md)
## # A tibble: 4 × 3
## curso altura_media curso_medio
## <fct> <dbl> <dbl>
## 1 Administração 176 9.5
## 2 Engenharia 173 7.67
## 3 Moda 166 5.5
## 4 Nutrição 165 5