Valeurs de paramètres par défaut
Fait partie de la section Fondamentaux du Journey R de Coddy — leçon 51 sur 78.
Parfois, vous voulez qu'une fonction ait un comportement « standard » qui peut être personnalisé au besoin. Les valeurs de paramètres par défaut vous permettent de définir ce qu'un paramètre devrait être si l'appelant ne le fournit pas.
Vous définissez une valeur par défaut en utilisant = dans la définition de la fonction :
greet <- function(name = "Guest") {
print(paste("Hello,", name))
}
greet()
greet("Alice")Sortie :
[1] "Hello, Guest"
[1] "Hello, Alice"Lorsqu'elle est appelée sans argument, la fonction utilise "Guest" par défaut. Lorsque vous fournissez une valeur, elle remplace la valeur par défaut.
Vous pouvez mélanger des paramètres obligatoires et optionnels. Les paramètres avec des valeurs par défaut doivent être placés après ceux qui n'en ont pas :
calculate_total <- function(price, tax_rate = 0.1) {
return(price + (price * tax_rate))
}
print(calculate_total(100))
print(calculate_total(100, 0.2))Sortie :
[1] 110
[1] 120Ici, price est requis alors que tax_rate vaut par défaut 10 %. Cela rend vos fonctions flexibles - simples à utiliser dans les cas courants, mais personnalisables si nécessaire.
Défi
FacileCréez une fonction appelée calculate_shipping qui prend deux arguments :
weight- le poids du colis (obligatoire)rate- le coût par unité de poids (optionnel, par défaut5)
La fonction doit retourner le coût d'expédition, calculé comme weight * rate.
Vous recevrez deux lignes d'entrée :
- Une valeur de poids
- Soit une valeur de taux (rate) OU le mot
default
Si la deuxième entrée est default, appelez la fonction avec seulement le poids (en utilisant le taux par défaut). Sinon, appelez la fonction avec le poids et le taux fourni.
Affichez le résultat retourné.
Par exemple, si les entrées sont :
10
defaultLa sortie devrait être :
[1] 50Si les entrées sont :
10
3La sortie devrait être :
[1] 30Aide-mémoire
Vous pouvez définir des valeurs de paramètres par défaut dans une fonction en utilisant = dans la définition de la fonction :
greet <- function(name = "Guest") {
print(paste("Hello,", name))
}
greet() # Utilise la valeur par défaut : "Hello, Guest"
greet("Alice") # Remplace la valeur par défaut : "Hello, Alice"Lorsque vous mélangez des paramètres obligatoires et optionnels, placez les paramètres avec des valeurs par défaut après ceux qui n'en ont pas :
calculate_total <- function(price, tax_rate = 0.1) {
return(price + (price * tax_rate))
}
calculate_total(100) # Utilise le tax_rate par défaut : 110
calculate_total(100, 0.2) # tax_rate personnalisé : 120Essayez vous-même
# Lire l'entrée
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO : Écrivez votre code ci-dessous
# 1. Définir la fonction calculate_shipping avec weight (obligatoire) et rate (optionnel, par défaut = 5)
# 2. Vérifier si rate_input est "default" ou un nombre
# 3. Appeler la fonction de manière appropriée et afficher le résultatCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 2
Opérateurs logiques (AND, OR)Opérateurs logiques - Partie 2 (NOT)Récapitulatif - Logique simpleLogique vectorisée - Partie 1Logique vectorisée - Partie 27Calculateur de partage d'addition
Message de bienvenueRécupérer la saisie utilisateur10FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz2Variables et types de données
Type de données numériqueType de données entierType de données caractèreType de données logiqueVérification des types de donnéesConventions de nommageValeurs manquantes : NARécapitulatif - Création de variables8Boucles
Boucle ForBoucle WhileBreakSuivant (Continue)Récapitulatif - FactorielleGénération de séquences (seq, :)Boucles imbriquéesRécapitulatif - Saisie dynamique3Opérateurs, partie 1
Opérateurs arithmétiquesDivision entière et moduloOpérateurs d'affectationRécapitulatif - Mathématiques simplesOpérateurs de comparaison6Entrées/Sorties de base
Affichage avec PrintCat pour l'affichageAffichage avec des variablesLire l'entrée avec readline()Bases de la conversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Fonctions
Déclarer une fonctionArguments de fonctionValeurs de retourRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs de paramètres par défaut