Menu
Coddy logo textTech

Valores de parámetros por defecto

Parte de la sección Fundamentos del Journey de R de Coddy — lección 51 de 78.

A veces quieres que una función tenga un comportamiento "estándar" que pueda ser personalizado cuando sea necesario. Los valores de parámetros por defecto te permiten definir qué debería ser un parámetro si el llamador no lo proporciona.

Estableces un valor por defecto usando = en la definición de la función:

greet <- function(name = "Guest") {
  print(paste("Hello,", name))
}

greet()
greet("Alice")

Salida:

[1] "Hello, Guest"
[1] "Hello, Alice"

Cuando se llama sin un argumento, la función utiliza "Guest" como valor predeterminado. Cuando proporcionas un valor, este anula el valor predeterminado.

Puedes mezclar parámetros obligatorios y opcionales. Los parámetros con valores predeterminados deben ir después de los que no los tienen:

calculate_total <- function(price, tax_rate = 0.1) {
  return(price + (price * tax_rate))
}

print(calculate_total(100))
print(calculate_total(100, 0.2))

Salida:

[1] 110
[1] 120

Aquí, price es obligatorio, mientras que tax_rate tiene un valor predeterminado del 10%. Esto hace que tus funciones sean flexibles: fáciles de usar en casos comunes, pero personalizables cuando sea necesario.

challenge icon

Desafío

Fácil

Crea una función llamada calculate_shipping que reciba dos argumentos:

  • weight - el peso del paquete (requerido)
  • rate - el costo por unidad de peso (opcional, por defecto es 5)

La función debe devolver el costo de envío, calculado como weight * rate.

Recibirás dos líneas de entrada:

  1. Un valor de peso
  2. Ya sea un valor de tasa O la palabra default

Si la segunda entrada es default, llama a la función solo con el peso (usando la tasa por defecto). De lo contrario, llama a la función con el peso y la tasa proporcionada.

Imprime el resultado devuelto.

Por ejemplo, si las entradas son:

10
default

La salida debería ser:

[1] 50

Si las entradas son:

10
3

La salida debería ser:

[1] 30

Hoja de referencia

Puedes establecer valores de parámetros por defecto en una función usando = en la definición de la función:

greet <- function(name = "Guest") {
  print(paste("Hello,", name))
}

greet()           # Usa el valor por defecto: "Hello, Guest"
greet("Alice")    # Sobrescribe el valor por defecto: "Hello, Alice"

Al mezclar parámetros obligatorios y opcionales, coloca los parámetros con valores por defecto después de los que no los tienen:

calculate_total <- function(price, tax_rate = 0.1) {
  return(price + (price * tax_rate))
}

calculate_total(100)       # Usa el tax_rate por defecto: 110
calculate_total(100, 0.2)  # tax_rate personalizado: 120

Pruébalo tú mismo

# Leer entrada
con <- file("stdin", "r")
weight <- as.numeric(suppressWarnings(readLines(con, n = 1)))
rate_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: Escribe tu código abajo
# 1. Define la función calculate_shipping con weight (obligatorio) y rate (opcional, por defecto = 5)
# 2. Verifica si rate_input es "default" o un número
# 3. Llama a la función de manera apropiada e imprime el resultado
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos