# remotes::install_github("curso-r/CursoRTarefas") library(CursoRTarefas) CursoRTarefas::adicionar_chunk_setup()
CursoRTarefas::adicionar_codigo_pre_tutorial(curso = "Introdução à programação com R", url = "https://loja.curso-r.com/introduc-o-a-programac-o-com-r.html")
1)a) Crie uma função chamada numero_ao_quadrado()
que tenha um argumento (chamado numero
) e retorne o quadrado deste número.
Teste se a função funciona: numero_ao_quadrado(3)
deve retornar o valor 9.
numero_ao_quadrado <- function(____){ _____ } numero_ao_quadrado(3)
numero_ao_quadrado <- function(___){ ___ ^ 2 } # Teste se a função funciona: numero_ao_quadrado(3)
numero_ao_quadrado <- function(numero){ numero ^ 2 } # Teste se a função funciona: numero_ao_quadrado(3)
grade_this({ if (identical(.result, .solution)) { pass("Correto!") } fail() })
b) Crie uma função chamada raiz_da_soma
que recebe 2 números x
e y
e retorna a raiz quadrada da soma desses números.
Depois teste a função para valores x = 6
e y = 3
, o resultado gerado pela função deve ser 3.
Dica: sqrt()
é a função para raiz quadrada.
raiz_da_soma <- function(){ } # Teste se a função funciona: raiz_da_soma(x = 6, y = 3)
raiz_da_soma <- function(x, y){ soma <- ___ sqrt(soma) } # Teste se a função funciona: raiz_da_soma(x = 6, y = 3)
raiz_da_soma <- function(x, y){ soma <- x + y sqrt(soma) } # Teste se a função funciona: raiz_da_soma(x = 6, y = 3)
grade_this({ if (identical(.result, .solution)) { pass("Correto!") } fail() })
2) Nos exercícios sobre controle de fluxo, mostramos um exemplo que, para testá-lo, usamos a função sample
para sortear um dia da semana. Vamos transformar aquele código em uma função? Essa função deve se chamar mensagem_de_bom_dia()
receber um argumento chamado dia_da_semana
. Abaixo segue o código que usamos no exercício, que deve ser adaptado, e também algumas chamadas da função que você pode usar para testar se o resultado é o esperado:
# TRANSFORME O CÓDIGO ABAIXO EM UMA FUNÇÃO: # Estrutura de repetição if (dia_da_semana %in% c("sabado", "domingo")) { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom descanso!") print(mensagem) } else if (dia_da_semana == "sexta") { mensagem <- paste0("Hoje é ", dia_da_semana, ", falta pouco para o final de semana!") print(mensagem) } else { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom trabalho!") print(mensagem) } # VERIFIQUE SE A FUNÇÃO FUNCIONA: mensagem_de_bom_dia("segunda") mensagem_de_bom_dia("sexta") mensagem_de_bom_dia("domingo")
# TRANSFORME O CÓDIGO ABAIXO EM UMA FUNÇÃO: mensagem_de_bom_dia <- function(______) { # Estrutura de repetição if (dia_da_semana %in% c("sabado", "domingo")) { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom descanso!") print(mensagem) } else if (dia_da_semana == "sexta") { mensagem <- paste0("Hoje é ", dia_da_semana, ", falta pouco para o final de semana!") print(mensagem) } else { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom trabalho!") print(mensagem) } } # VERIFIQUE SE A FUNÇÃO FUNCIONA: mensagem_de_bom_dia("segunda") mensagem_de_bom_dia("sexta") mensagem_de_bom_dia("domingo")
# TRANSFORME O CÓDIGO ABAIXO EM UMA FUNÇÃO: mensagem_de_bom_dia <- function(dia_da_semana) { # Estrutura de repetição if (dia_da_semana %in% c("sabado", "domingo")) { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom descanso!") print(mensagem) } else if (dia_da_semana == "sexta") { mensagem <- paste0("Hoje é ", dia_da_semana, ", falta pouco para o final de semana!") print(mensagem) } else { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom trabalho!") print(mensagem) } } # VERIFIQUE SE A FUNÇÃO FUNCIONA: mensagem_de_bom_dia("segunda") mensagem_de_bom_dia("sexta") mensagem_de_bom_dia("domingo")
grade_this({ if (identical(.result, .solution)) { pass("Correto!") } fail() })
3) Nesse exercício, voltaremos no desafio apresentado em uma tarefa anterior. Naquele desafio, mostramos como calcular o desvio padrão.
media_ozone <- mean(airquality$Ozone, na.rm = TRUE) ozone_centralizado <- airquality$Ozone - media_ozone ozone_centralizado_ao_quadrado <- ozone_centralizado ^ 2 media_ozone_centralizado_ao_quadrado <- mean(ozone_centralizado_ao_quadrado, na.rm = TRUE) desvio_padrao_ozone_calculado <- sqrt(media_ozone_centralizado_ao_quadrado) desvio_padrao_ozone_calculado
Agora vamos adaptar esse código para usar com pipe. Antes disso, também iremos criar funções para usar nesse encadeamento:
a) Crie uma função chamada centralizar
, que recebe um argumento chamado vetor_centralizar
, e retorna o vetor centralizado (vetor - média do vetor).
b) Crie uma função chamada eleva_ao_quadrado
, que recebe um argumento chamado x
, e retorna o valor de x elevado ao quadrado.
c) Usando as funções criadas e o pipe, reescreva o código para calcular o desvio padrão:
# a) centralizar <- function(vetor_centralizar){ _____ } # b) eleva_ao_quadrado <- function(x){ _____ } # c) airquality$Ozone %>% ___ %>% ___ %>% ___ %>% ___()
# a) centralizar <- function(vetor_centralizar){ vetor_centralizar - mean(vetor_centralizar, na.rm = TRUE) } # b) eleva_ao_quadrado <- function(x){ _____ } # c) airquality$Ozone %>% ___ %>% ___ %>% ___ %>% ___()
# a) centralizar <- function(vetor_centralizar){ vetor_centralizar - mean(vetor_centralizar, na.rm = TRUE) } # b) eleva_ao_quadrado <- function(x){ x ^ 2 } # c) airquality$Ozone %>% ___ %>% ___ %>% ___ %>% ___()
# a) centralizar <- function(vetor_centralizar){ vetor_centralizar - mean(vetor_centralizar, na.rm = TRUE) } # b) eleva_ao_quadrado <- function(x){ x ^ 2 } # c) airquality$Ozone %>% centralizar() %>% eleva_ao_quadrado() %>% ___(na.rm = TRUE) %>% ___()
# a) centralizar <- function(vetor_centralizar){ vetor_centralizar - mean(vetor_centralizar, na.rm = TRUE) } # b) eleva_ao_quadrado <- function(x){ x ^ 2 } # c) airquality$Ozone %>% centralizar() %>% eleva_ao_quadrado() %>% mean(na.rm = TRUE) %>% sqrt()
grade_this({ if (identical(.result, .solution)) { pass("Correto!") } fail() })
Se você completou a tarefa e quer submeter, clique no botão abaixo ('Generate') para gerar o seu código hash e envie usando o formulário a seguir:
learnrhash::encoder_logic()
learnrhash::encoder_ui(ui_before = " ", ui_after = " ")
CursoRTarefas::adicionar_codigo_pos_tutorial(url_form = params$url_form)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.