Qué comprar
Parte de la sección Fundamentos del Journey de R de Coddy — lección 78 de 78.
Desafío
FácilCrea una función llamada what_to_buy que reciba dos argumentos: budget (un valor numérico) y prices (un vector con nombres de los precios de los artículos). La función debe devolver un vector de caracteres que contenga los nombres de todos los artículos con precios menores o iguales al presupuesto.
Si no hay artículos asequibles, devuelve un vector de caracteres vacío usando character(0).
Recibirás las siguientes entradas:
- El monto del presupuesto (un número)
- Una lista de nombres de artículos separados por comas (por ejemplo,
apple,banana,steak,bread) - Una lista de precios correspondientes separados por comas (por ejemplo,
2,1,15,3)
Analiza las entradas para crear un vector de precios con nombres, llama a tu función e imprime el resultado. Usa print() para mostrar el vector de caracteres devuelto.
Por ejemplo, si la entrada es:
5
apple,banana,steak,bread
2,1,15,3La salida debería ser:
[1] "apple" "banana" "bread"Si la entrada es:
10
laptop,phone,tablet
999,599,399La salida debería ser:
character(0)Consejos:
- Usa
strsplit(input, ",")[[1]]para dividir cadenas separadas por comas en vectores - Usa
as.numeric()para convertir las cadenas de precios en números - Usa
names(prices) <- item_namespara crear un vector con nombres - Usa indexación lógica con
names()para extraer los nombres de los artículos asequibles
Pruébalo tú mismo
# Leer entrada
con <- file("stdin", "r")
budget <- as.numeric(suppressWarnings(readLines(con, n = 1)))
item_names_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# Analizar las entradas
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])
# Crear un vector de precios con nombres
prices <- price_values
names(prices) <- item_names
# TODO: Escribe tu función what_to_buy a continuación
# La función debe tomar budget y prices como argumentos
# y devolver un vector de caracteres con los nombres de los artículos asequibles
# Llamar a la función e imprimir el resultado
result <- what_to_buy(budget, prices)
print(result)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