R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

ExercícioProgramação

Exercício de Programação - Lista 1 Exercício 1.1.1 a <- 2 b <- 3 c <- 4

a+b ## [1] 5 a+c ## [1] 6 b+c ## [1] 7 Exercício 1.1.2 rm(list=ls())

A <- 6 B <- 8 cat(“A e B são”, A, ” e ” , B) ## A e B são 6 e 8 Aux <- 0

Aux <- A A <- B B <- Aux

cat(“A e B são”, A, ” e ” , B) ## A e B são 8 e 6 Exercício 1.1.3 rm(list=ls())

temperatura <- 38

graus_celsius <- (temperatura - 32) * (5/9)

cat(“A temperatura equivalente é”, graus_celsius) ## A temperatura equivalente é 3.333333 cat(“A temperatura equivalente é”, (temperatura - 32) * (5/9)) ## A temperatura equivalente é 3.333333 Exercício 1.1.4 # O valor da variável x é 2: x <- 2

a) X3 - 4

x^3 -4 ## [1] 4 # cat(“a) X3 - 4 =”, x^3 - 4) cat(“a) X3 - 4 =”, x^3 -4) ## a) X3 - 4 = 4 # b) O resto da divisão de X / 3 x %% 3 ## [1] 2 #cat(“O resto da divisão de X / 3 =”, x % 3) cat(“O resto da divisão de X / 3 =”, x %% 3) ## O resto da divisão de X / 3 = 2 # c) X(x/3) + 2 x^3 -4 ## [1] 4 # cat(“X3 - 4 =”, x^3 -4) cat(“X3 - 4 =”, x^3 -4) ## X3 - 4 = 4 # d) Raiz quadrada de X2 sqrt(x^2) ## [1] 2 # cat(“X3 - 4 =”, sqrt(x^2)) cat(“X3 - 4 =”, sqrt(x^2)) ## X3 - 4 = 2 Exercício 1.1.5 # a) Crie um vetor com uma sequência de 10 números. # Estes comandos são similares: # vetor <- 1:10, ou vetor <- c(1:10), ou vetor <- seq(1,10), ou # vetor <- c(1,2,3,4,5,6,7,8,9,10) vetor <- c(1:10) cat(“vetor =”,vetor) ## vetor = 1 2 3 4 5 6 7 8 9 10 # b) Faça um loop para calcular a soma dos números do vetor. # crio uma variável para guardar a soma o coloco o valor zero nela soma <- 0 cat(“soma =”, soma) ## soma = 0 # criando o loop for(i in 1:10){ soma <- soma + vetor[i] }

apresento o valor da soma

soma ## [1] 55 cat(“O valor da soma é:”, soma) ## O valor da soma é: 55 Exercício 1.1.6 # Média é a soma dividido pela quantidade de observações, ou seja, 10. # O “i” utilizado no comando “for” guarda a quantidade de observações # Veja o valor de i: cat(“i =”,i, “”) ## i = 10 # Logo a média é igual a soma/i cat(“A média é:”, soma/i) ## A média é: 5.5 Exercício 1.1.7 # Criando as variáveis x e y x <- 3 y <- 5 if(x > y){ print(“x é maior que y”) }else{ print(“x é menor que y”) } ## [1] “x é menor que y” Exercício 1.1.8 x <- 3 y <- 5 if(x <= y){ print(“x é menor ou igual a y”) }else{ print(“x é maior ou igual a y”) } ## [1] “x é menor ou igual a y” Exercício 1.1.9 vetor <- c(1:10)

crio uma variável para guardar a soma e coloco o valor zero nela

soma_pares <- 0

criando o loop

for(i in 1:10){ if(i%%2 == 0){ # somo somente se o resto da divisão de i/2 for zero soma_pares <- soma_pares + vetor[i]} }

apresento o valor da soma

cat(“O valor da soma dos pares é:”, soma_pares) ## O valor da soma dos pares é: 30 Exercício 1.1.10 # crio uma variável para armazenar o valor do fatorial, e atribuo o valor 1 a ela. mult <- 1

Defino o numéro que você quer calcular o fatorial

x <- 5

for(i in 1:5){ mult <- mult * i }

cat(“O valor do fatorial é:”, mult) ## O valor do fatorial é: 120 Exercício 1.1.11 matriz <- matrix(data = 1, nrow = 4, ncol = 4, byrow = TRUE) matriz ## [,1] [,2] [,3] [,4] ## [1,] 1 1 1 1 ## [2,] 1 1 1 1 ## [3,] 1 1 1 1 ## [4,] 1 1 1 1 ## [,1] [,2] [,3] [,4] ## [1,] 1 1 1 1 ## [2,] 1 1 1 1 ## [3,] 1 1 1 1 ## [4,] 1 1 1 1 Exercício 1.1.12 matriz <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE) matriz ## [,1] [,2] [,3] [,4] ## [1,] 1 2 3 4 ## [2,] 5 6 7 8 ## [3,] 9 10 11 12 ## [4,] 13 14 15 16 Exercício 1.1.13 df <- as.data.frame(matriz) df ## V1 V2 V3 V4 ## 1 1 2 3 4 ## 2 5 6 7 8 ## 3 9 10 11 12 ## 4 13 14 15 16 Exercício 1.1.14 # Introdução:

A matriz do ex 12

matriz <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)

Para visitarmos todos os valores de uma matriz, precisamos fazer 2 loops, um dentro do outro. Para isso, utilizaremos 2 comandos “for”

Veja o exemplo para uma matriz 4 x 4

for(linha in 1:4){ for(coluna in 1:4){ cat(matriz[linha, coluna], ” “) } } ## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # Repare que para a primeira linha, visitamos as 4 colunas, por isso os números estão ordenados # Esse comando pode ser modificado, iniciando-se pelas colunas e percorrendo todas as linhas, basta mudar as posições dos comandos”for”. Veja: for(coluna in 1:4){ for(linha in 1:4){ cat(matriz[linha, coluna], ” “) } } ## 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 # a) a média de uma coluna da matriz do exercício “12)”. # média da coluna 2 soma_coluna <- 0

for(linha in 1:4){ for(coluna in 1:4){ if(coluna == 2){ # serão somados somente os valores da coluna 2 soma_coluna <- soma_coluna + matriz[linha, coluna] } } }

A média da coluna é a soma da coluna dividido pela quantidade de linhas dessa coluna

media_coluna <- soma_coluna/linha media_coluna ## [1] 8 # b) A média de todas as colunas da matriz do exercício “12)”. # vamos criar um vetor do tamanho da quantidade de colunas, 4 v_soma_colunas <- rep(0,4) # repete 4 vezes o valor 0

for(linha in 1:4){ for(coluna in 1:4){ v_soma_colunas[coluna] <- v_soma_colunas[coluna] + matriz[linha, coluna] } }

v_soma_colunas ## [1] 28 32 36 40 media_colunas <- v_soma_colunas/linha media_colunas ## [1] 7 8 9 10 # c) A média de todas as linhas da matriz do exercício “12)”. # Neste caso, é só dividir o vetor anterior pelo quantidade de linhas

v_soma_linhas <- rep(0,4) # repete 4 vezes o valor 0

for(linha in 1:4){ for(coluna in 1:4){ v_soma_linhas[linha] <- v_soma_linhas[linha] + matriz[linha, coluna] } }

v_soma_linhas ## [1] 10 26 42 58 media_linhas <- v_soma_linhas/coluna media_linhas ## [1] 2.5 6.5 10.5 14.5 # d) A média dos números pares de todas as colunas da matriz do exercício “12)”. v_soma_npar_colunas <- rep(0,4) # repete 4 vezes o valor 0

for(linha in 1:4){ for(coluna in 1:4){ if(matriz[linha, coluna]%%2 == 0){ v_soma_npar_colunas[coluna] <- v_soma_npar_colunas[coluna] + matriz[linha, coluna]} } }

v_soma_npar_colunas ## [1] 0 32 0 40 media_npar_colunas <- v_soma_npar_colunas/linha media_npar_colunas ## [1] 0 8 0 10 # e) A média dos números ímpares de todas as linhas da matriz do exercício “12)”. v_soma_nimpar_linhas <- rep(0,4) # repete 4 vezes o valor 0 cont <- rep(0,4)

for(linha in 1:4){ for(coluna in 1:4){ if(matriz[linha, coluna]%%2 != 0){ v_soma_nimpar_linhas[linha] <- v_soma_nimpar_linhas[linha] + matriz[linha, coluna] cont[linha] <- cont[linha] +1} } }

v_soma_nimpar_linhas ## [1] 4 12 20 28 media_nimpar_linhas <- rep(0,4)

for(linha in 1:dim(matriz)[1]){ if(cont[linha] != 0){ media_nimpar_linhas[linha] <- v_soma_nimpar_linhas[linha]/cont[linha]} else{ media_nimpar_linhas[linha] <- 0 } }

media_nimpar_linhas ## [1] 2 6 10 14 # f) A soma da diagonal principal da matriz. soma_diagonal <- 0

for(linha in 1:4){ for(coluna in 1:4){ if(linha == coluna){ soma_diagonal <- soma_diagonal + matriz[linha, coluna]} } }

soma_diagonal ## [1] 34 # g) A soma da diagonal secundária da matriz (desafio). # Uma dica: a soma dos índices da diagonal secundária de uma matriz é a sua dimensão mais 1. soma_diagonal_secundaria <- 0

for(linha in 1:4){ for(coluna in 1:4){ if((linha + coluna) == 5){ soma_diagonal_secundaria <- soma_diagonal_secundaria + matriz[linha, coluna]} } }

soma_diagonal_secundaria ## [1] 34 Exercício 1.1.15 # As dimensões de uma matriz podem ser vistas com o comando dim(matriz) dim(matriz) ## [1] 4 4 # O resultado deste comando é um vetor de 2 posições, onde a primeira posição é a quantidade de linhas da matriz e a segunda posição é a quantidade de colunas da matriz. Por isso, para saber a quantidade de linhas, utilizamos o comando dim(matriz)[1] dim(matriz)[1] ## [1] 4 # Para quantidade de coluna utilizamos o dim(matiz)[2] dim(matriz)[2] ## [1] 4 # Para entendermos melhor, vamos mudar as dimensões da matriz para 6x6 matriz <- matrix(data = 1:36, nrow = 6, ncol = 6, byrow = TRUE) # a) a média de uma coluna da matriz do exercício “12)”. # média da coluna 2 soma_coluna <- 0

for(linha in 1:dim(matriz)[1]){ for(coluna in 1:dim(matriz)[2]){ if(coluna == 2){ # serão somados somente os valores da coluna 2 soma_coluna <- soma_coluna + matriz[linha, coluna] } } }

A média da coluna é a soma da coluna dividido pela quantidade de linhas dessa coluna

media_coluna <- soma_coluna/dim(matriz)[1] media_coluna ## [1] 17 # b) A média de todas as colunas da matriz do exercício “12)”. # vamos criar um vetor do tamanho da quantidade de colunas, 4 v_soma_colunas <- rep(0,dim(matriz)[1]) # repete 4 vezes o valor 0

for(linha in 1:dim(matriz)[1]){ for(coluna in 1:dim(matriz)[2]){ v_soma_colunas[coluna] <- v_soma_colunas[coluna] + matriz[linha, coluna] } }

v_soma_colunas ## [1] 96 102 108 114 120 126 # c) A média de todas as linhas da matriz do exercício “12)”. # Neste caso, é só dividir o vetor anterior pelo quantidade de linhas

d) A média dos números pares de todas as colunas da matriz do exercício “12)”.

v_soma_npar_colunas <- rep(0,dim(matriz)[2]) # repete 4 vezes o valor 0 cont <- rep(0,dim(matriz)[2]) # contador para quantidade de vezer que surge o número par

for(linha in 1:dim(matriz)[1]){ for(coluna in 1:dim(matriz)[2]){ if(matriz[linha, coluna]%%2 == 0){ v_soma_npar_colunas[coluna] <- v_soma_npar_colunas[coluna] + matriz[linha, coluna] cont[coluna] <- cont[coluna] + 1} } }

v_soma_npar_colunas ## [1] 0 102 0 114 0 126 for(coluna in 1:dim(matriz)[2]){ if(cont[coluna] != 0){ media_npar_colunas[coluna] <- v_soma_npar_colunas[coluna]/cont[coluna]} else{ media_npar_colunas[coluna] <- 0 } }

media_npar_colunas ## [1] 0 17 0 19 0 21 # e) A média dos números ímpares de todas as linhas da matriz do exercício “12)”. v_soma_nimpar_linhas <- rep(0,dim(matriz)[1]) # repete 4 vezes o valor 0 cont <- rep(0,dim(matriz)[1])

for(linha in 1:dim(matriz)[1]){ for(coluna in 1:dim(matriz)[2]){ if(matriz[linha, coluna]%%2 != 0){ v_soma_nimpar_linhas[linha] <- v_soma_nimpar_linhas[linha] + matriz[linha, coluna] cont[linha] <- cont[linha] +1} } }

v_soma_nimpar_linhas ## [1] 9 27 45 63 81 99 media_nimpar_linhas <- rep(0,dim(matriz)[1])

for(linha in 1:dim(matriz)[1]){ if(cont[linha] != 0){ media_nimpar_linhas[linha] <- v_soma_nimpar_linhas[linha]/cont[linha]} else{ media_nimpar_linhas[linha] <- 0 } }

media_nimpar_linhas ## [1] 3 9 15 21 27 33 # f) A soma da diagonal principal da matriz. soma_diagonal <- 0

for(linha in 1:dim(matriz)[1]){ for(coluna in 1:dim(matriz)[2]){ if(linha == coluna){ soma_diagonal <- soma_diagonal + matriz[linha, coluna]} } }

soma_diagonal ## [1] 111 # g) A soma da diagonal secundária da matriz (desafio). # Uma dica: a soma dos índices da diagonal secundária de uma matriz é a sua dimensão mais 1. soma_diagonal_secundaria <- 0

for(linha in 1:dim(matriz)[1]){ for(coluna in 1:dim(matriz)[2]){ if((linha + coluna) == 1+dim(matriz)[1]){ soma_diagonal_secundaria <- soma_diagonal_secundaria + matriz[linha, coluna]} } }

soma_diagonal_secundaria ## [1] 111 ## Exercício 1.1.15

df <- as.data.frame(matriz)

soma_coluna <- 0

for(linha in 1:dim(df)[1]){ for(coluna in 1:dim(df)[2]){ if(coluna == 2){ # serão somados somente os valores da coluna 2 soma_coluna <- soma_coluna + df[linha, coluna] } } }

A média da coluna é a soma da coluna dividido pela quantidade de linhas dessa coluna

media_coluna <- soma_coluna/dim(df)[1] media_coluna ## [1] 17 # b) A média de todas as colunas da matriz do exercício “12)”. # vamos criar um vetor do tamanho da quantidade de colunas, 4 v_soma_colunas <- rep(0,dim(df)[1]) # repete 4 vezes o valor 0

for(linha in 1:dim(df)[1]){ for(coluna in 1:dim(df)[2]){ v_soma_colunas[coluna] <- v_soma_colunas[coluna] + df[linha, coluna] } }

v_soma_colunas ## [1] 96 102 108 114 120 126 # c) A média de todas as linhas da matriz do exercício “12)”. # Neste caso, é só dividir o vetor anterior pelo quantidade de linhas

media_colunas <- v_soma_colunas/dim(df)[1] media_colunas ## [1] 16 17 18 19 20 21 # d) A média dos números pares de todas as colunas da matriz do exercício “12)”. v_soma_npar_colunas <- rep(0,dim(df)[2]) # repete 4 vezes o valor 0

for(linha in 1:dim(df)[1]){ for(coluna in 1:dim(df)[2]){ if(df[linha, coluna]%%2 == 0){ v_soma_npar_colunas[coluna] <- v_soma_npar_colunas[coluna] + df[linha, coluna]} } }

v_soma_npar_colunas ## [1] 0 102 0 114 0 126 media_npar_colunas <- v_soma_npar_colunas/dim(df)[1] media_npar_colunas ## [1] 0 17 0 19 0 21 # e) A média dos números ímpares de todas as linhas da matriz do exercício “12)”. v_soma_nimpar_linhas <- rep(0,dim(df)[2]) # repete 4 vezes o valor 0

for(linha in 1:dim(df)[1]){ for(coluna in 1:dim(df)[2]){ if(matriz[linha, coluna]%%2 != 0){ v_soma_nimpar_linhas[linha] <- v_soma_nimpar_linhas[linha] + df[linha, coluna]} } }

v_soma_nimpar_linhas ## [1] 9 27 45 63 81 99 media_nimpar_linha <- v_soma_nimpar_linhas[linha]/dim(df)[2] media_nimpar_linha ## [1] 16.5 # f) A soma da diagonal principal da matriz. soma_diagonal <- 0

for(linha in 1:dim(df)[1]){ for(coluna in 1:dim(df)[2]){ if(linha == coluna){ soma_diagonal <- soma_diagonal + df[linha, coluna]} } }

soma_diagonal ## [1] 111 # g) A soma da diagonal secundária da matriz (desafio). # Uma dica: a soma dos índices da diagonal secundária de uma matriz é a sua dimensão mais 1. soma_diagonal_secundaria <- 0

for(linha in 1:dim(df)[1]){ for(coluna in 1:dim(df)[2]){ if((linha + coluna) == 1+dim(df)[1]){ soma_diagonal_secundaria <- soma_diagonal_secundaria + df[linha, coluna]} } }

soma_diagonal_secundaria ## [1] 111 Exercícios Lista 2 Exercício 1.2.1 #Ex 1 - Rev2 sal_fixo <- 5000 tot_vendas <- 20000 perc_vendas <- 0.05 perc_inss <- 0.11 perc_irpf <- 0.27

comissao <- perc_vendas * tot_vendas comissao ## [1] 1000 val_inss <- perc_inss * sal_fixo val_inss ## [1] 550 tot_rend <- sal_fixo + comissao - val_inss tot_rend ## [1] 5450 val_irpf <- tot_rend * perc_irpf val_irpf ## [1] 1471.5 sal <- tot_rend - val_irpf sal ## [1] 3978.5 cat(“Bilhete de Pagamento”, “”) ## ## ## Bilhete de Pagamento cat(“Salario fixo”, sal_fixo, “”, “Comissão”, comissao, “”, “___________________________”, “”, “Desconto INSS”, val_inss, “”, “Desconto IRPF”, val_irpf, “”, “___________________________”, “”, “Líquido a receber”, sal, “”) ## Salario fixo 5000 ## Comissão 1000 ## ___________________________ ## Desconto INSS 550 ## Desconto IRPF 1471.5 ## ___________________________ ## Líquido a receber 3978.5 Exercício 1.2.2 Criando os dados

df <- data.frame( NOME = paste(“VENDEDOR”, 1:7), Salario_Base = c(1800, 2500, 2500, 3000, 3500, 4000, 5000), Vendas = c(20000, 30000, 25000, 15000, 27000, 30000, 32000) ) # Adicionando coluna da alíquota IRPF df\(Aliq_IRPF <- 0 for(linha in 1:nrow(df)) { salario <- df\)Salario_Base[linha]

if (salario > 4664.68) { df\(Aliq_IRPF[linha] <- 0.275 } else if (salario > 3751.05) { df\)Aliq_IRPF[linha] <- 0.225 } else if (salario > 2826.65) { df\(Aliq_IRPF[linha] <- 0.15 } else if (salario > 1903.98) { df\)Aliq_IRPF[linha] <- 0.075 } else { df\(Aliq_IRPF[linha] <- 0 } } # Calculando o IRPF df\)IRPF <- df\(Aliq_IRPF * df\)Salario_Base # Calculando o INSS (11%) df\(INSS <- df\)Salario_Base * 0.11 # Calculando a comissão (5% sobre as vendas) df\(Comissao <- df\)Vendas * 0.05 # Calculando o salário líquido df\(Sal_Liquido <- df\)Salario_Base + df\(Comissao - df\)INSS - df$IRPF # Mostrando resultado final df ## NOME Salario_Base Vendas Aliq_IRPF IRPF INSS Comissao Sal_Liquido ## 1 VENDEDOR 1 1800 20000 0.000 0.0 198 1000 2602.0 ## 2 VENDEDOR 2 2500 30000 0.075 187.5 275 1500 3537.5 ## 3 VENDEDOR 3 2500 25000 0.075 187.5 275 1250 3287.5 ## 4 VENDEDOR 4 3000 15000 0.150 450.0 330 750 2970.0 ## 5 VENDEDOR 5 3500 27000 0.150 525.0 385 1350 3940.0 ## 6 VENDEDOR 6 4000 30000 0.225 900.0 440 1500 4160.0 ## 7 VENDEDOR 7 5000 32000 0.275 1375.0 550 1600 4675.0 ##Calculando o valor do INSS perc_inss <- 0.11

for(i in 1:dim(df)[1]){ df\(INSS[i] <- df\)Salario_Base[i] * perc_inss}

df ## NOME Salario_Base Vendas Aliq_IRPF IRPF INSS Comissao Sal_Liquido ## 1 VENDEDOR 1 1800 20000 0.000 0.0 198 1000 2602.0 ## 2 VENDEDOR 2 2500 30000 0.075 187.5 275 1500 3537.5 ## 3 VENDEDOR 3 2500 25000 0.075 187.5 275 1250 3287.5 ## 4 VENDEDOR 4 3000 15000 0.150 450.0 330 750 2970.0 ## 5 VENDEDOR 5 3500 27000 0.150 525.0 385 1350 3940.0 ## 6 VENDEDOR 6 4000 30000 0.225 900.0 440 1500 4160.0 ## 7 VENDEDOR 7 5000 32000 0.275 1375.0 550 1600 4675.0 ##Calculando o valor do comissão perc_comissao <- 0.05

for(i in 1:dim(df)[1]){ df\(Comissao[i] <- df\)Vendas[i] * perc_comissao}

df ## NOME Salario_Base Vendas Aliq_IRPF IRPF INSS Comissao Sal_Liquido ## 1 VENDEDOR 1 1800 20000 0.000 0.0 198 1000 2602.0 ## 2 VENDEDOR 2 2500 30000 0.075 187.5 275 1500 3537.5 ## 3 VENDEDOR 3 2500 25000 0.075 187.5 275 1250 3287.5 ## 4 VENDEDOR 4 3000 15000 0.150 450.0 330 750 2970.0 ## 5 VENDEDOR 5 3500 27000 0.150 525.0 385 1350 3940.0 ## 6 VENDEDOR 6 4000 30000 0.225 900.0 440 1500 4160.0 ## 7 VENDEDOR 7 5000 32000 0.275 1375.0 550 1600 4675.0 ##Calculando o valor líquido a receber for(i in 1:dim(df)[1]){ df\(Sal_Liquido[i] <- df\)Salario_Base[i] + df\(Comissao[i] - df\)INSS[i] - df$IRPF[i] }

df ## NOME Salario_Base Vendas Aliq_IRPF IRPF INSS Comissao Sal_Liquido ## 1 VENDEDOR 1 1800 20000 0.000 0.0 198 1000 2602.0 ## 2 VENDEDOR 2 2500 30000 0.075 187.5 275 1500 3537.5 ## 3 VENDEDOR 3 2500 25000 0.075 187.5 275 1250 3287.5 ## 4 VENDEDOR 4 3000 15000 0.150 450.0 330 750 2970.0 ## 5 VENDEDOR 5 3500 27000 0.150 525.0 385 1350 3940.0 ## 6 VENDEDOR 6 4000 30000 0.225 900.0 440 1500 4160.0 ## 7 VENDEDOR 7 5000 32000 0.275 1375.0 550 1600 4675.0 Exercício 1.2.3 lucro <- function(receitas, despesas){ return (receitas - despesas) } # Custo da garrafa avulsa custo_garrrafa_avulsa <- 8 custo_garrrafa_avulsa ## [1] 8 # Valor da garrafa vendida valor_garrafa_vendida <- 15 valor_garrafa_vendida ## [1] 15 # Garrafas do engradado garrafas_engradado <- 24

Engradado - 24*600= 14400 ml <- 144 L

vol_engradado <- 24 * 600 vol_engradado ## [1] 14400 # Foliões - 5000 cada um 2L; total_consumido_ml <- 5000 * 2000 total_consumido_ml ## [1] 1e+07 ## a)Ele compre as garrafas avulsas e venda cada garrafa a R$ 15,00.

Letra A

garrafas_vendidas <- total_consumido_ml/600 garrafas_vendidas ## [1] 16666.67 receita_venda_garrafa <- garrafas_vendidas * 15 despesa_garrafa <- garrafas_vendidas * 8

lucro_a <-lucro(receita_venda_garrafa, despesa_garrafa)

print(paste(“Se comprar as garrafas avulsas e vender cada garrafa a R$ 15,00, o lucro será de:”, lucro_a)) ## [1] “Se comprar as garrafas avulsas e vender cada garrafa a R$ 15,00, o lucro será de: 116666.666666667” ## b)Ele compre o engradado e venda cada garrafa a R$ 15,00 (ele não pode comprar fração do engradado – arredonde para menos).

receita_por_engradado <- garrafas_engradado * 15 receita_por_engradado ## [1] 360 engradados_vendidos <-total_consumido_ml / vol_engradado engradados_vendidos ## [1] 694.4444 # Arredondando para baixo engradados_vendidos <- round(engradados_vendidos,0) engradados_vendidos ## [1] 694 receita_total_engradados <- engradados_vendidos * receita_por_engradado receita_total_engradados ## [1] 249840 despesa_por_engradado <- 180 despesa_por_engradado ## [1] 180 despesa_total_engradado <- engradados_vendidos * despesa_por_engradado despesa_total_engradado ## [1] 124920 lucro_b <- lucro(receita_total_engradados, despesa_total_engradado)

print(paste(“Ao comprar o engradado e vender cada garrafa a R$ 15,00, o lucro será de:”, lucro_b)) ## [1] “Ao comprar o engradado e vender cada garrafa a R$ 15,00, o lucro será de: 124920” ## c)Ele venda o copo de 500 ml a R$ 15,00 – cada copo plástico sai a R$ 0,20

Valor do copo vendido

valor_copo_vendido <- 15 valor_copo_vendido ## [1] 15 total_copos_vendidos <- total_consumido_ml / 500 # cada copo tem 500ml total_copos_vendidos ## [1] 20000 receita_copos_vendidos <- total_copos_vendidos * valor_copo_vendido receita_copos_vendidos ## [1] 3e+05 # Valor da cerveja do copo considerando a garrafa R$ 8,00 custo_cerveja_do_copo <- 500 * 8 /600 custo_cerveja_do_copo ## [1] 6.666667 custo_copo_plastico <- 0.2 custo_copo_plastico ## [1] 0.2 custo_copo_vendido <- custo_cerveja_do_copo + custo_copo_plastico custo_copo_vendido ## [1] 6.866667 lucro_c <- lucro(receita_copos_vendidos, custo_copo_vendido) lucro_c ## [1] 299993.1 paste(“Ao vender o copo de 500 ml a R$ 15,00, o lucro será de:”, lucro_c) ## [1] “Ao vender o copo de 500 ml a R$ 15,00, o lucro será de: 299993.133333333” Exercício 1.2.4 Criando dados # Criação do data frame com notas dos alunos dados <- data.frame( Nome_Aluno = c(“Aluno 1”, “Aluno 2”, “Aluno 3”, “Aluno 4”, “Aluno 5”, “Aluno 6”, “Aluno 7”), Disciplina_1 = c(3, 4, 5, 6, 7, 8, 9), Disciplina_2 = c(10, 9, 8, 7, 6, 5, 4), Disciplina_3 = c(7, 8, 9, 10, 7, 8, 9) ) # Criação do data frame dados <- data.frame( Nome_Aluno = c(“Aluno 1”, “Aluno 2”, “Aluno 3”, “Aluno 4”, “Aluno 5”, “Aluno 6”, “Aluno 7”), Disciplina_1 = c(3, 4, 5, 6, 7, 8, 9), Disciplina_2 = c(10, 9, 8, 7, 6, 5, 4), Disciplina_3 = c(7, 8, 9, 10, 7, 8, 9) )

Cálculo da média (CR) de cada aluno

dados$CR <- rowMeans(dados[, 2:4])

Exibindo o resultado

dados ## Nome_Aluno Disciplina_1 Disciplina_2 Disciplina_3 CR ## 1 Aluno 1 3 10 7 6.666667 ## 2 Aluno 2 4 9 8 7.000000 ## 3 Aluno 3 5 8 9 7.333333 ## 4 Aluno 4 6 7 10 7.666667 ## 5 Aluno 5 7 6 7 6.666667 ## 6 Aluno 6 8 5 8 7.000000 ## 7 Aluno 7 9 4 9 7.333333 # b)A média de cada disciplina. media_disciplinas <- colMeans(dados[, 2:4])

Exibindo as médias das disciplinas

media_disciplinas ## Disciplina_1 Disciplina_2 Disciplina_3 ## 6.000000 7.000000 8.285714 # c) Cálculo da média final da turma (média dos CRs) media_final_turma <- mean(dados$CR)

Exibindo resultados

dados ## Nome_Aluno Disciplina_1 Disciplina_2 Disciplina_3 CR ## 1 Aluno 1 3 10 7 6.666667 ## 2 Aluno 2 4 9 8 7.000000 ## 3 Aluno 3 5 8 9 7.333333 ## 4 Aluno 4 6 7 10 7.666667 ## 5 Aluno 5 7 6 7 6.666667 ## 6 Aluno 6 8 5 8 7.000000 ## 7 Aluno 7 9 4 9 7.333333 media_disciplinas ## Disciplina_1 Disciplina_2 Disciplina_3 ## 6.000000 7.000000 8.285714 media_final_turma ## [1] 7.095238 # d) O aluno com média mais alta. indice_melhor <- which.max(dados$CR) aluno_top <- dados[indice_melhor, ]

Exibindo resultados

dados ## Nome_Aluno Disciplina_1 Disciplina_2 Disciplina_3 CR ## 1 Aluno 1 3 10 7 6.666667 ## 2 Aluno 2 4 9 8 7.000000 ## 3 Aluno 3 5 8 9 7.333333 ## 4 Aluno 4 6 7 10 7.666667 ## 5 Aluno 5 7 6 7 6.666667 ## 6 Aluno 6 8 5 8 7.000000 ## 7 Aluno 7 9 4 9 7.333333 cat(“final da turma:”, round(media_final_turma, 2), “”) ## ## Média final da turma: 7.1 cat(“Aluno com maior CR:”, aluno_top\(Nome_Aluno, "com média", round(aluno_top\)CR, 2), “”) ## Aluno com maior CR: Aluno 4 com média 7.67 # e) A lista de alunos reprovados, por disciplina. adiciona_situacao <- function(df, nota_minima = 5) { df\(Sit_D1 <- ifelse(df\)Disciplina_1 < nota_minima, “Reprovado”, “Aprovado”) df\(Sit_D2 <- ifelse(df\)Disciplina_2 < nota_minima, “Reprovado”, “Aprovado”) df\(Sit_D3 <- ifelse(df\)Disciplina_3 < nota_minima, “Reprovado”, “Aprovado”) return(df) }

Aplicando a função

dados <- adiciona_situacao(dados)

Exibindo a lista final com situação por disciplina

dados ## Nome_Aluno Disciplina_1 Disciplina_2 Disciplina_3 CR Sit_D1 ## 1 Aluno 1 3 10 7 6.666667 Reprovado ## 2 Aluno 2 4 9 8 7.000000 Reprovado ## 3 Aluno 3 5 8 9 7.333333 Aprovado ## 4 Aluno 4 6 7 10 7.666667 Aprovado ## 5 Aluno 5 7 6 7 6.666667 Aprovado ## 6 Aluno 6 8 5 8 7.000000 Aprovado ## 7 Aluno 7 9 4 9 7.333333 Aprovado ## Sit_D2 Sit_D3 ## 1 Aprovado Aprovado ## 2 Aprovado Aprovado ## 3 Aprovado Aprovado ## 4 Aprovado Aprovado ## 5 Aprovado Aprovado ## 6 Aprovado Aprovado ## 7 Reprovado Aprovado Lista 3 Exercício 1.3.1 #Dadas 3 variáveis com valores numéricos, apresentar o resultado da soma das combinações dois a dois destes três números. Por exemplo, variáveis A, B e C, mostrar A + B, A + C, B + C. Atribuindo valores às variáveis:

Não há alteração na solução da lista 1

a <- 2 b <- 3 c <- 4

(a + b) # o parêntesis faz com que o valor da operação seja apresentado ## [1] 5 (a + c) ## [1] 6 (b + c) ## [1] 7 Exercício 1.3.2 #Definir duas variáveis A e B e trocar seus valores. Ex: Entrada: A=6 e B=8 Saída: A=8 e B=6.

rm(list=ls()) # Não há alteração na solução da lista 1 A <- 6 B <- 8 Aux <- 0

Aux <- A A <- B B <- Aux

cat(“A e B são”, A, ” e ” , B) ## A e B são 8 e 6 Exercício 1.3.3 #Converter uma temperatura de Fahrenheit para Centígrados. C = (F - 32) * ( 5 / 9 ).

rm(list=ls()) # Não há alteração na solução da lista 1 temperatura <- 38 graus_celsius <- (temperatura - 32) * (5/9) cat(“A temperatura equivalente é”, graus_celsius) ## A temperatura equivalente é 3.333333 cat(“A temperatura equivalente é”, (temperatura - 32) * (5/9)) ## A temperatura equivalente é 3.333333 Exercício 1.3.4 #Escrever um algoritmo que defina um número X e calcule: # a)X3 - 4 # b)O resto da divisão de X / 3 # c)X(x/3) + 2 # d)Raiz quadrada de X2

Não há alteração na solução da lista 1

O valor da variável x é 2:

x <- 2

a) X3 - 4

(x^3 -4) ## [1] 4 # b) O resto da divisão de X / 3 (x %% 3) ## [1] 2 # c) X(x/3) + 2 (x^3 -4) ## [1] 4 # d) Raiz quadrada de X2 (sqrt(x^2)) ## [1] 2 Exercício 1.3.5 #Elabore um algoritmo que: # a)Crie um vetor com uma sequência de 10 números. # b)Faça um loop para calcular a soma dos números do vetor. # c)Utilize o comando “vetor <- c(1:10)” para criar o vetor. # d)Utilize o comando “for( i in 1:10) { …comandos}” para realizar a soma. # e)Referencie os valores do vetor com o comando: “vetor[i]”, onde “i” é o índice referência (número) Ex. vetor: 1,2,3,4,5,6,7,8,9,10 | Soma dos números = 55.

a) Crie um vetor com uma sequência de 10 números.

Estes comandos são similares:

vetor <- 1:10, ou vetor <- c(1:10), ou vetor <- seq(1,10), ou

vetor <- c(1,2,3,4,5,6,7,8,9,10)

vetor <- c(1:10)

Calcular a soma dos números do vetor.

utilizar o comando “sum”

soma <- sum(vetor) soma ## [1] 55 Exercício 1.3.6 #A partir do exercício anterior, faça a média dos valores contidos no vetor.

Para média utilizar o comando mean

Outros comandos estatísticos:

desvio-padrão - comando sd()

mediana - comando median()

máximo - comando max()

mínimo - comando min()

media <- mean(vetor) media ## [1] 5.5 Exercício 1.3.7 #Crie duas variáveis, x e y. Compare se x é maior que y. Se for, imprima “x é maior que y”, se não for, imprima “y é maior que x”.

a)A sintaxe do comando de comparação é: if (x > y) {comandos…} else {comandos}

b)O comando print(“texto ou variável”) imprime a resposta na tela.

Não há alteração na solução da lista 1

Criando as variáveis x e y

x <- 3 y <- 5 if(x > y){ print(“x é maior que y”) }else{ print(“x é menor que y”) } ## [1] “x é menor que y” Exercício 1.3.8 # Repita o exercício “7)” realizando os seguintes ajustes: # Substitua o sinal de maior (“>”) pelo de menor ou igual (“<=”) e ajuste dos dizeres da resposta.

Não há alteração na solução da lista 1

x <- 3 y <- 5 if(x <= y){ print(“x é menor ou igual a y”) }else{ print(“x é maior ou igual a y”) } ## [1] “x é menor ou igual a y” Exercício 1.3.9 #A partir do exercício “5)”, faça a soma somente dos números pares.

vetor <- c(1:10)

Crio uma condição na chamada dos indices. No caso abaixo, o valor de cada posição do vetor é comparada e só retorna aqueles valores cujas divisões por 2 é 0.

vetor[vetor[]%%2 == 0] ## [1] 2 4 6 8 10 # realizo a soma sum(vetor[vetor[]%%2 == 0]) ## [1] 30 Exercício 1.3.10 #Faça um algoritmo que calcule e imprima o fatorial de um número inteiro.

Utilizar a função “factorial”

factorial(5) ## [1] 120 Exercício 1.3.11 #Crie uma matriz 4x4. #Uma matriz no R comporta somente um tipo de dado (número, texto ou boleano). #O comando para criar a matriz é “x <- matrix(data = 1, nrow = 4, ncol = 4, byrow = TRUE)”

Não há alteração na solução da lista 1

matriz <- matrix(data = 1, nrow = 4, ncol = 4, byrow = TRUE) matriz ## [,1] [,2] [,3] [,4] ## [1,] 1 1 1 1 ## [2,] 1 1 1 1 ## [3,] 1 1 1 1 ## [4,] 1 1 1 1 Exercício 1.3.12 #Agora, crie uma matriz com a sequência de 1 a 16.

Não há alteração na solução da lista 1

matriz <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE) matriz ## [,1] [,2] [,3] [,4] ## [1,] 1 2 3 4 ## [2,] 5 6 7 8 ## [3,] 9 10 11 12 ## [4,] 13 14 15 16 Exercício 1.3.13 #Transforme essa matriz em um data.frame # Não há alteração na solução da lista 1 df <- as.data.frame(matriz) df ## V1 V2 V3 V4 ## 1 1 2 3 4 ## 2 5 6 7 8 ## 3 9 10 11 12 ## 4 13 14 15 16 Exercício 1.3.14 #Utilizando os comandos de repetição e decisão (se for necessário), calcule: #a média de uma coluna da matriz do exercício “12)”. #A média de todas as colunas da matriz do exercício “12)”. #A média de todas as linhas da matriz do exercício “12)”. #A média dos números pares de todas as colunas da matriz do exercício “12)”. #A média dos números ímpares de todas as linhas da matriz do exercício “12)”. #A soma da diagonal principal da matriz. #A soma da diagonal secundária da matriz (desafio).

A matriz do ex 12

matriz <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE) # a)a média de uma coluna da matriz do exercício “12)”. # média da coluna 2 mean(matriz[,2]) ## [1] 8 # b)A média de todas as colunas da matriz do exercício “12)”. summary(matriz) # O comando summary calcula as estatísticas básicas de cada coluna ## V1 V2 V3 V4
## Min. : 1 Min. : 2 Min. : 3 Min. : 4
## 1st Qu.: 4 1st Qu.: 5 1st Qu.: 6 1st Qu.: 7
## Median : 7 Median : 8 Median : 9 Median :10
## Mean : 7 Mean : 8 Mean : 9 Mean :10
## 3rd Qu.:10 3rd Qu.:11 3rd Qu.:12 3rd Qu.:13
## Max. :13 Max. :14 Max. :15 Max. :16 summary(matriz)[4,] # retorno somente as médias ## V1 V2 V3 V4 ## “Mean : 7” “Mean : 8” “Mean : 9” “Mean :10” # c) A média de todas as linhas da matriz do exercício “12)”. # calculo a média das coluna da matriz transposta summary(t(matriz[,])) ## V1 V2 V3 V4
## Min. :1.00 Min. :5.00 Min. : 9.00 Min. :13.00
## 1st Qu.:1.75 1st Qu.:5.75 1st Qu.: 9.75 1st Qu.:13.75
## Median :2.50 Median :6.50 Median :10.50 Median :14.50
## Mean :2.50 Mean :6.50 Mean :10.50 Mean :14.50
## 3rd Qu.:3.25 3rd Qu.:7.25 3rd Qu.:11.25 3rd Qu.:15.25
## Max. :4.00 Max. :8.00 Max. :12.00 Max. :16.00 summary(t(matriz[,]))[4,] ## V1 V2 V3 V4 ## “Mean :2.50” “Mean :6.50” “Mean :10.50” “Mean :14.50” # d) A média dos números pares de todas as colunas da matriz do exercício “12)”. vt_npares_col_media <- rep(0,dim(matriz)[2])

vt_npares_col_media[c(1:dim(matriz)[2])] <- 0 for(coluna in 1:dim(matriz)[2]){ vt <- matriz[,coluna] vt_npares_col_media[coluna] <- ifelse(!is.na(mean(vt[vt%%2 == 0])),mean(vt[vt%%2 == 0]),0) }

vt_npares_col_media ## [1] 0 8 0 10 # e) A média dos números ímpares de todas as linhas da matriz do exercício “12)”. vt_nimpares_linha_media <- rep(0,dim(matriz)[1])

for(linha in 1:dim(matriz)[1]){ vt <- matriz[linha,] vt_nimpares_linha_media[linha] <- ifelse(!is.na(mean(vt[vt%%2 != 0])),mean(vt[vt%%2 != 0]),0) }

vt_nimpares_linha_media ## [1] 2 6 10 14 # f) A soma da diagonal principal da matriz. # O comando diag extrai a diagonal da matriz em um vetor diag(matriz) ## [1] 1 6 11 16 sum(diag(matriz)) ## [1] 34 # g) A soma da diagonal secundária da matriz (desafio). # Uma dica: a soma dos índices da diagonal secundária de uma matriz é a sua dimensão mais 1. # Não há alteração na solução da lista 1 soma_diagonal_secundaria <- 0 for(linha in 1:4){ for(coluna in 1:4){ if((linha + coluna) == 5){ soma_diagonal_secundaria <- soma_diagonal_secundaria + matriz[linha, coluna]} } } soma_diagonal_secundaria ## [1] 34 Exercício 1.3.15 #Repita o exercício “14)” com os dados do data.frame do exercício “13)”. df <- as.data.frame(matriz) # a) a média de uma coluna da matriz do exercício “12)”. # média da coluna 2 mean(df[,2]) ## [1] 8 #b)A média de todas as colunas da matriz do exercício “12)”.

summary(df) # O comando summary calcula as estatísticas básicas de cada coluna ## V1 V2 V3 V4
## Min. : 1 Min. : 2 Min. : 3 Min. : 4
## 1st Qu.: 4 1st Qu.: 5 1st Qu.: 6 1st Qu.: 7
## Median : 7 Median : 8 Median : 9 Median :10
## Mean : 7 Mean : 8 Mean : 9 Mean :10
## 3rd Qu.:10 3rd Qu.:11 3rd Qu.:12 3rd Qu.:13
## Max. :13 Max. :14 Max. :15 Max. :16 summary(df)[4,] # retorno somente as médias ## V1 V2 V3 V4 ## “Mean : 7” “Mean : 8” “Mean : 9” “Mean :10” # c) A média de todas as linhas da matriz do exercício “12)”. # calculo a média das coluna da matriz transposta summary(t(df[,])) ## V1 V2 V3 V4
## Min. :1.00 Min. :5.00 Min. : 9.00 Min. :13.00
## 1st Qu.:1.75 1st Qu.:5.75 1st Qu.: 9.75 1st Qu.:13.75
## Median :2.50 Median :6.50 Median :10.50 Median :14.50
## Mean :2.50 Mean :6.50 Mean :10.50 Mean :14.50
## 3rd Qu.:3.25 3rd Qu.:7.25 3rd Qu.:11.25 3rd Qu.:15.25
## Max. :4.00 Max. :8.00 Max. :12.00 Max. :16.00 summary(t(df[,]))[4,] ## V1 V2 V3 V4 ## “Mean :2.50” “Mean :6.50” “Mean :10.50” “Mean :14.50” # d) A média dos números pares de todas as colunas da matriz do exercício “12)”. vt_npares_col_media <- rep(0,dim(matriz)[2])

for(coluna in 1:dim(df)[2]){ vt <- df[,coluna] vt_npares_col_media[coluna] <- ifelse(!is.na(mean(vt[vt%%2 == 0])),mean(vt[vt%%2 == 0]),0) }

vt_npares_col_media ## [1] 0 8 0 10 # e) A média dos números ímpares de todas as linhas da matriz do exercício “12)”.

vt_nimpares_linha_media <- rep(0,dim(df)[1])

for(linha in 1:dim(df)[1]){ vt <- df[linha,] vt_nimpares_linha_media[linha] <- ifelse(!is.na(mean(vt[vt%%2 != 0])),mean(vt[vt%%2 != 0]),0) }

vt_nimpares_linha_media ## [1] 2 6 10 14 # f) A soma da diagonal principal da matriz. # O comando diag extrai a diagonal da matriz em um vetor #diag(df) #sum(diag(df))

diag(as.matrix(df)) ## [1] 1 6 11 16 sum(diag(as.matrix(df))) ## [1] 34 # g)A soma da diagonal secundária da matriz (desafio). # Uma dica: a soma dos índices da diagonal secundária de uma matriz é a sua dimensão mais 1. # Não há alteração na solução da lista 1 soma_diagonal_secundaria <- 0 for(linha in 1:4){ for(coluna in 1:4){ if((linha + coluna) == 5){ soma_diagonal_secundaria <- soma_diagonal_secundaria + df[linha, coluna]} } } soma_diagonal_secundaria ## [1] 34 Exercício 1.4.1 #Calcular o salário mensal final de um vendedor. As seguintes informações determinam esse valor: a) salário fixo – R$ 5000,00 b) total de vendas por ele efetuadas – R$ 20.000,00 c) percentual que ele recebe sobre o total de vendas – 5% d) INSS de 11% sobre o salário fixo. e) IR de 27% sobre o total de rendimentos.

#Não há alteração na solução da lista 2 #Ex 1 - Rev2 sal_fixo <- 5000 tot_vendas <- 20000 perc_vendas <- 0.05 perc_inss <- 0.11 perc_irpf <- 0.27

comissao <- perc_vendas * tot_vendas comissao ## [1] 1000 val_inss <- perc_inss * sal_fixo val_inss ## [1] 550 tot_rend <- sal_fixo + comissao - val_inss tot_rend ## [1] 5450 val_irpf <- tot_rend * perc_irpf val_irpf ## [1] 1471.5 sal <- tot_rend - val_irpf sal ## [1] 3978.5 #Imprimindo um Bilhete de pagamento

cat(“Bilhete de Pagamento”, “”) ## ## ## Bilhete de Pagamento cat(“Salario fixo”, sal_fixo, “”, “Comissão”, comissao, “”, “___________________________”, “”, “Desconto INSS”, val_inss, “”, “Desconto IRPF”, val_irpf, “”, “___________________________”, “”, “Líquido a receber”, sal, “”) ## Salario fixo 5000 ## Comissão 1000 ## ___________________________ ## Desconto INSS 550 ## Desconto IRPF 1471.5 ## ___________________________ ## Líquido a receber 3978.5 Exercício 1.4.2 df <- data.frame( NOME = paste(“VENDEDOR”, 1:7), Salario_Base = c(1800, 2500, 2500, 3000, 3500, 4000, 5000), Vendas = c(20000, 30000, 25000, 15000, 27000, 30000, 32000) ) # Adicionando coluna da alíquota IRPF df$Aliq_IRPF <- 0

for(linha in 1:nrow(df)) { salario <- df$Salario_Base[linha]

if (salario > 4664.68) { df\(Aliq_IRPF[linha] <- 0.275 } else if (salario > 3751.05) { df\)Aliq_IRPF[linha] <- 0.225 } else if (salario > 2826.65) { df\(Aliq_IRPF[linha] <- 0.15 } else if (salario > 1903.98) { df\)Aliq_IRPF[linha] <- 0.075 } else { df\(Aliq_IRPF[linha] <- 0 } } # Calculando o IRPF df\)IRPF <- df\(Aliq_IRPF * df\)Salario_Base # Calculando o INSS (11%) df\(INSS <- df\)Salario_Base * 0.11 # Calculando a comissão (5% sobre as vendas) df\(Comissao <- df\)Vendas * 0.05 # Calculando o salário líquido df\(Sal_Liquido <- df\)Salario_Base + df\(Comissao - df\)INSS - df$IRPF # Mostrando resultado final df ## NOME Salario_Base Vendas Aliq_IRPF IRPF INSS Comissao Sal_Liquido ## 1 VENDEDOR 1 1800 20000 0.000 0.0 198 1000 2602.0 ## 2 VENDEDOR 2 2500 30000 0.075 187.5 275 1500 3537.5 ## 3 VENDEDOR 3 2500 25000 0.075 187.5 275 1250 3287.5 ## 4 VENDEDOR 4 3000 15000 0.150 450.0 330 750 2970.0 ## 5 VENDEDOR 5 3500 27000 0.150 525.0 385 1350 3940.0 ## 6 VENDEDOR 6 4000 30000 0.225 900.0 440 1500 4160.0 ## 7 VENDEDOR 7 5000 32000 0.275 1375.0 550 1600 4675.0 Exercício 1.4.3 # Elabore um programa para efetuar o cálculo da quantidade de garrafas e de engradados de cerveja consumida por um determinado bloco durante o carnaval, considerando que 5000 foliões bebem cerca de 2 litros durante o desfile do bloco.

lucro <- function(receitas, despesas){ return (receitas - despesas) } Definindo as variáveis básicas. # Custo da garrafa avulsa custo_garrrafa_avulsa <- 8 custo_garrrafa_avulsa ## [1] 8 # Valor da garrafa vendida valor_garrafa_vendida <- 15 valor_garrafa_vendida ## [1] 15 # Garrafas do engradado garrafas_engradado <- 24

Engradado - 24*600= 14400 ml <- 144 L

vol_engradado <- 24 * 600 vol_engradado ## [1] 14400 # Foliões - 5000 cada um 2L; total_consumido_ml <- 5000 * 2000 total_consumido_ml ## [1] 1e+07 # a) Ele compre as garrafas avulsas e venda cada garrafa a R$ 15,00.

garrafas_vendidas <- total_consumido_ml/600 garrafas_vendidas ## [1] 16666.67 receita_venda_garrafa <- garrafas_vendidas * 15 despesa_garrafa <- garrafas_vendidas * 8

lucro_a <-lucro(receita_venda_garrafa, despesa_garrafa)

print(paste(“Se comprar as garrafas avulsas e vender cada garrafa a R$ 15,00, o lucro será de:”, lucro_a)) ## [1] “Se comprar as garrafas avulsas e vender cada garrafa a R$ 15,00, o lucro será de: 116666.666666667” # b) Ele compre o engradado e venda cada garrafa a R$ 15,00 (ele não pode comprar fração do engradado – arredonde para menos).

receita_por_engradado <- garrafas_engradado * 15 receita_por_engradado ## [1] 360 engradados_vendidos <-total_consumido_ml / vol_engradado engradados_vendidos ## [1] 694.4444 # Arredondando para baixo engradados_vendidos <- round(engradados_vendidos,0) engradados_vendidos ## [1] 694 receita_total_engradados <- engradados_vendidos * receita_por_engradado receita_total_engradados ## [1] 249840 despesa_por_engradado <- 180 despesa_por_engradado ## [1] 180 despesa_total_engradado <- engradados_vendidos * despesa_por_engradado despesa_total_engradado ## [1] 124920 lucro_b <- lucro(receita_total_engradados, despesa_total_engradado)

print(paste(“Ao comprar o engradado e vender cada garrafa a R$ 15,00, o lucro será de:”, lucro_b)) ## [1] “Ao comprar o engradado e vender cada garrafa a R$ 15,00, o lucro será de: 124920” # c) Ele venda o copo de 500 ml a R$ 15,00 – cada copo plástico sai a R$ 0,20. # Valor do copo vendido valor_copo_vendido <- 15 valor_copo_vendido ## [1] 15 total_copos_vendidos <- total_consumido_ml / 500 # cada copo tem 500ml total_copos_vendidos ## [1] 20000 receita_copos_vendidos <- total_copos_vendidos * valor_copo_vendido receita_copos_vendidos ## [1] 3e+05 # Valor da cerveja do copo considerando a garrafa R$ 8,00 custo_cerveja_do_copo <- 500 * 8 /600 custo_cerveja_do_copo ## [1] 6.666667 custo_copo_plastico <- 0.2 custo_copo_plastico ## [1] 0.2 custo_copo_vendido <- custo_cerveja_do_copo + custo_copo_plastico custo_copo_vendido ## [1] 6.866667 lucro_c <- lucro(receita_copos_vendidos, custo_copo_vendido) lucro_c ## [1] 299993.1 paste(“Ao vender o copo de 500 ml a R$ 15,00, o lucro será de:”, lucro_c) ## [1] “Ao vender o copo de 500 ml a R$ 15,00, o lucro será de: 299993.133333333” Exercício 1.4.4 # Criação do data frame com notas dos alunos dados <- data.frame( Nome_Aluno = c(“Aluno 1”, “Aluno 2”, “Aluno 3”, “Aluno 4”, “Aluno 5”, “Aluno 6”, “Aluno 7”), Disciplina_1 = c(3, 4, 5, 6, 7, 8, 9), Disciplina_2 = c(10, 9, 8, 7, 6, 5, 4), Disciplina_3 = c(7, 8, 9, 10, 7, 8, 9) )

Exibindo o data frame

dados ## Nome_Aluno Disciplina_1 Disciplina_2 Disciplina_3 ## 1 Aluno 1 3 10 7 ## 2 Aluno 2 4 9 8 ## 3 Aluno 3 5 8 9 ## 4 Aluno 4 6 7 10 ## 5 Aluno 5 7 6 7 ## 6 Aluno 6 8 5 8 ## 7 Aluno 7 9 4 9 # a)A média de cada aluno (CR)

dados\(CR <- rowMeans(dados[, 2:4]) # b)A média de cada disciplina. media_disciplinas <- colMeans(dados[, 2:4]) # c)A média final da turma. media_final_turma <- mean(dados\)CR)

Exibindo resultados

dados ## Nome_Aluno Disciplina_1 Disciplina_2 Disciplina_3 CR ## 1 Aluno 1 3 10 7 6.666667 ## 2 Aluno 2 4 9 8 7.000000 ## 3 Aluno 3 5 8 9 7.333333 ## 4 Aluno 4 6 7 10 7.666667 ## 5 Aluno 5 7 6 7 6.666667 ## 6 Aluno 6 8 5 8 7.000000 ## 7 Aluno 7 9 4 9 7.333333 media_disciplinas ## Disciplina_1 Disciplina_2 Disciplina_3 ## 6.000000 7.000000 8.285714 media_final_turma ## [1] 7.095238 # d) O aluno com média mais alta.

indice_melhor <- which.max(dados$CR) aluno_top <- dados[indice_melhor, ]

Exibindo resultados

dados ## Nome_Aluno Disciplina_1 Disciplina_2 Disciplina_3 CR ## 1 Aluno 1 3 10 7 6.666667 ## 2 Aluno 2 4 9 8 7.000000 ## 3 Aluno 3 5 8 9 7.333333 ## 4 Aluno 4 6 7 10 7.666667 ## 5 Aluno 5 7 6 7 6.666667 ## 6 Aluno 6 8 5 8 7.000000 ## 7 Aluno 7 9 4 9 7.333333 cat(“final da turma:”, round(media_final_turma, 2), “”) ## ## Média final da turma: 7.1 cat(“Aluno com maior CR:”, aluno_top\(Nome_Aluno, "com média", round(aluno_top\)CR, 2), “”) ## Aluno com maior CR: Aluno 4 com média 7.67 # e) A lista de alunos reprovados, por disciplina adiciona_situacao <- function(df, nota_minima = 5) { df\(Sit_D1 <- ifelse(df\)Disciplina_1 < nota_minima, “Reprovado”, “Aprovado”) df\(Sit_D2 <- ifelse(df\)Disciplina_2 < nota_minima, “Reprovado”, “Aprovado”) df\(Sit_D3 <- ifelse(df\)Disciplina_3 < nota_minima, “Reprovado”, “Aprovado”) return(df) }

Aplicando a função

dados <- adiciona_situacao(dados)

#———————————————– # Exibindo a lista final com situação por disciplina #———————————————– dados ## Nome_Aluno Disciplina_1 Disciplina_2 Disciplina_3 CR Sit_D1 ## 1 Aluno 1 3 10 7 6.666667 Reprovado ## 2 Aluno 2 4 9 8 7.000000 Reprovado ## 3 Aluno 3 5 8 9 7.333333 Aprovado ## 4 Aluno 4 6 7 10 7.666667 Aprovado ## 5 Aluno 5 7 6 7 6.666667 Aprovado ## 6 Aluno 6 8 5 8 7.000000 Aprovado ## 7 Aluno 7 9 4 9 7.333333 Aprovado ## Sit_D2 Sit_D3 ## 1 Aprovado Aprovado ## 2 Aprovado Aprovado ## 3 Aprovado Aprovado ## 4 Aprovado Aprovado ## 5 Aprovado Aprovado