Valori predefiniti dei parametri
Fa parte della sezione Fondamenti del percorso R di Coddy. Lezione 51 di 78.
A volte vuoi che una funzione abbia un comportamento "standard" personalizzabile quando necessario. I valori predefiniti dei parametri ti permettono di definire quale valore debba avere un parametro se chi chiama la funzione non lo specifica.
Imposti un valore predefinito usando = nella definizione della funzione:
greet <- function(name = "Guest") {
print(paste("Hello,", name))
}
greet()
greet("Alice")Output:
[1] "Hello, Guest"
[1] "Hello, Alice"Quando viene chiamata senza un argomento, la funzione usa "Guest" come valore predefinito. Quando fornisci un valore, questo sostituisce quello predefinito.
Puoi combinare parametri obbligatori e facoltativi. I parametri con valori predefiniti devono venire dopo quelli senza:
calculate_total <- function(price, tax_rate = 0.1) {
return(price + (price * tax_rate))
}
print(calculate_total(100))
print(calculate_total(100, 0.2))Output:
[1] 110
[1] 120Qui, price è obbligatorio, mentre tax_rate ha un valore predefinito del 10%. Questo rende le tue funzioni flessibili: semplici da usare nei casi comuni, ma personalizzabili quando necessario.
Sfida
FacileCrea una funzione chiamata calculate_shipping che accetta due argomenti:
weight- il peso del pacco (obbligatorio)rate- il costo per unità di peso (facoltativo, valore predefinito5)
La funzione deve restituire il costo di spedizione, calcolato come weight * rate.
Riceverai due righe di input:
- Un valore di peso
- Un valore di tariffa OPPURE la parola
default
Se il secondo input è default, chiama la funzione passando solo il peso (usando la tariffa predefinita). Altrimenti, chiama la funzione passando sia il peso sia la tariffa fornita.
Stampa il risultato restituito.
Ad esempio, se gli input sono:
10
defaultL'output dovrebbe essere:
[1] 50Se gli input sono:
10
3L'output dovrebbe essere:
[1] 30Provalo tu
# Leggi l'input
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: Scrivi il tuo codice qui sotto
# 1. Definisci la funzione calculate_shipping con weight (obbligatorio) e rate (facoltativo, valore predefinito = 5)
# 2. Controlla se rate_input è "default" o un numero
# 3. Chiama la funzione nel modo appropriato e stampa il risultatoQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici (AND, OR)Operatori logici Parte 2 (NOT)Ripasso - Logica sempliceLogica vettorializzata Parte 1Logica vettorializzata Parte 27Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dell'utente10FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz13Vettori: argomenti avanzati
Slicing e indicizzazione dei vettoriIndicizzazione logicaAritmetica dei vettori e ricicloL’operatore %in%2Variabili e tipi di dati
Tipo di dato numericoTipo di dato interoTipo di dato carattereTipo di dato logicoControllo dei tipi di datoConvenzioni di denominazioneValori mancanti: NARiepilogo - Creazione di variabili8Cicli
Ciclo forCiclo whilebreaknext (continue)Riepilogo - FattorialeGenerazione di sequenze (seq, :)Cicli annidatiRiepilogo - Input dinamico3Operatori Parte 1
Operatori aritmeticiDivisione intera e moduloOperatori di assegnazioneRiepilogo - Matematica sempliceOperatori di confronto6I/O di base
Stampare l'outputcat per l'outputOutput con variabiliLeggere l'input con readline()Nozioni di base sulla conversione dei tipiRiepilogo - Calcolatore dell'etàRiepilogo - Vero o falso9Funzioni
Dichiarare una funzioneArgomenti della funzioneValori di ritornoRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti dei parametriEsercitati da solo: Compilatore R online