Valores de retorno
Parte de la sección Fundamentos del Journey de R de Coddy — lección 48 de 78.
Hasta ahora, nuestras funciones han impreso la salida directamente. Pero a menudo querrás que una función calcule un valor y lo devuelva para que puedas usarlo en otro lugar de tu código. Aquí es donde entran en juego los valores de retorno.
Usa la función return() para devolver un valor desde tu función:
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result)Salida:
[1] 8En lugar de imprimir dentro de la función, devolvemos la suma. El valor devuelto puede entonces almacenarse en una variable, usarse en cálculos o pasarse a otras funciones.
Esto hace que las funciones sean mucho más versátiles:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3))Salida:
[1] 16En R, si no usas return(), la función devuelve automáticamente la última expresión evaluada. Sin embargo, el uso explícito de return() hace que tu código sea más claro y es especialmente útil cuando deseas salir de una función de forma anticipada.
Desafío
FácilCrea una función llamada calculate_power que reciba dos argumentos: base y exponent. La función debe devolver el resultado de elevar la base a la potencia del exponente (usando el operador ^).
Lee dos números de la entrada, conviértelos a valores numéricos y llama a tu función. Almacena el valor devuelto en una variable llamada result, luego imprime result.
Por ejemplo, si las entradas son 2 y 3, la salida debería ser:
[1] 8Si las entradas son 5 y 2, la salida debería ser:
[1] 25Hoja de referencia
Las funciones pueden devolver valores utilizando la función return(). Esto le permite almacenar el resultado en una variable o utilizarlo en otras operaciones:
add <- function(a, b) {
return(a + b)
}
result <- add(5, 3)
print(result) # [1] 8Los valores devueltos pueden utilizarse directamente en expresiones:
double <- function(x) {
return(x * 2)
}
print(double(5) + double(3)) # [1] 16En R, las funciones devuelven automáticamente la última expresión evaluada si no se utiliza return(). Sin embargo, el uso explícito de return() hace que el código sea más claro y permite salidas anticipadas de las funciones.
Pruébalo tú mismo
# Leer la entrada
con <- file("stdin", "r")
base <- as.numeric(suppressWarnings(readLines(con, n = 1)))
exponent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# TODO: Crear una función llamada calculate_power que tome base y exponent
# y devuelva la base elevada a la potencia del exponente usando el operador ^
# TODO: Llamar a tu función con los valores de entrada y almacenar el resultado en 'result'
# Imprimir el resultado
print(result)Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores lógicos (AND, OR)Operadores lógicos Parte 2 (NOT)Resumen - Lógica simpleLógica vectorizada Parte 1Lógica vectorizada Parte 27Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada del usuario2Variables y tipos de datos
Tipo de dato numéricoTipo de dato enteroTipo de dato de caracteresTipo de dato lógicoComprobación de tipos de datosConvenciones de nomenclaturaValores faltantes: NAResumen - Creación de variables8Bucles
Bucle ForBucle WhileBreakNext (Continue)Repaso - FactorialGeneración de secuencias (seq, :)Bucles anidadosRepaso - Entrada dinámica3Operadores Parte 1
Operadores aritméticosDivisión entera y móduloOperadores de asignaciónRepaso - Matemáticas simplesOperadores de comparación6E/S básica
Imprimir salidaCat para salidaSalida con variablesLectura de entrada con readline()Conceptos básicos de conversión de tiposResumen - Calculadora de edadResumen - Verdadero o falso9Funciones
Declarar una funciónArgumentos de una funciónValores de retornoRepaso - Función SigmaRepaso - Función de validaciónValores de parámetros por defecto