Valores de Parâmetro Padrão
Parte da seção Fundamentos do Journey de R da Coddy — lição 51 de 78.
Às vezes, você deseja que uma função tenha um comportamento "padrão" que possa ser personalizado quando necessário. Valores de parâmetro padrão permitem que você defina o que um parâmetro deve ser caso o chamador não o forneça.
Você define um valor padrão usando = na definição da função:
greet <- function(name = "Guest") {
print(paste("Hello,", name))
}
greet()
greet("Alice")Saída:
[1] "Hello, Guest"
[1] "Hello, Alice"Quando chamada sem um argumento, a função usa "Guest" como o padrão. Quando você fornece um valor, ele substitui o padrão.
Você pode misturar parâmetros obrigatórios e opcionais. Parâmetros com valores padrão devem vir depois daqueles sem:
calculate_total <- function(price, tax_rate = 0.1) {
return(price + (price * tax_rate))
}
print(calculate_total(100))
print(calculate_total(100, 0.2))Saída:
[1] 110
[1] 120Aqui, price é obrigatório, enquanto tax_rate tem como padrão 10%. Isso torna suas funções flexíveis - simples de usar em casos comuns, mas customizáveis quando necessário.
Desafio
FácilCrie uma função chamada calculate_shipping que recebe dois argumentos:
weight- o peso do pacote (obrigatório)rate- o custo por unidade de peso (opcional, o padrão é5)
A função deve retornar o custo de envio, calculado como weight * rate.
Você receberá duas linhas de entrada:
- Um valor de peso
- Um valor de taxa OU a palavra
default
Se a segunda entrada for default, chame a função apenas com o peso (usando a taxa padrão). Caso contrário, chame a função com o peso e a taxa fornecida.
Imprima o resultado retornado.
Por exemplo, se as entradas forem:
10
defaultA saída deve ser:
[1] 50Se as entradas forem:
10
3A saída deve ser:
[1] 30Folha de consulta
Você pode definir valores de parâmetros padrão em uma função usando = na definição da função:
greet <- function(name = "Guest") {
print(paste("Hello,", name))
}
greet() # Usa o padrão: "Hello, Guest"
greet("Alice") # Sobrescreve o padrão: "Hello, Alice"Ao misturar parâmetros obrigatórios e opcionais, coloque os parâmetros com valores padrão após aqueles que não os possuem:
calculate_total <- function(price, tax_rate = 0.1) {
return(price + (price * tax_rate))
}
calculate_total(100) # Usa o tax_rate padrão: 110
calculate_total(100, 0.2) # tax_rate personalizado: 120Experimente você mesmo
# Ler a entrada
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: Escreva seu código abaixo
# 1. Defina a função calculate_shipping com weight (obrigatório) e rate (opcional, padrão = 5)
# 2. Verifique se rate_input é "default" ou um número
# 3. Chame a função apropriadamente e imprima o resultadoEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos (AND, OR)Operadores Lógicos Parte 2 (NOT)Recapitulação - Lógica SimplesLógica Vetorizada Parte 1Lógica Vetorizada Parte 27Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo a Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz2Variáveis e Tipos de Dados
Tipo de Dado NuméricoTipo de Dado InteiroTipo de Dado CaractereTipo de Dado LógicoVerificando Tipos de DadosConvenções de NomenclaturaValores Ausentes: NARecapitulação - Criação de Variáveis8Laços de Repetição
Laço ForLaço WhileBreakNext (Continue)Recapitulação - FatorialGeração de Sequências (seq, :)Laços AninhadosRecapitulação - Entrada Dinâmica3Operadores Parte 1
Operadores AritméticosDivisão Inteira e MóduloOperadores de AtribuiçãoRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com PrintCat para SaídaSaída com VariáveisLendo Entrada com readline()Básico de Conversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Funções
Declarando uma FunçãoArgumentos de FunçãoValores de RetornoRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores de Parâmetro Padrão