Reto dataframes en R

Proyecto de programación
Avanzado
R
Curso de R
30 min
500 XP
Actualizado: 17/05/2025

¡Programa y certifícate!

Asistente de IA
Solución de código
Certificado
Empezar ejercicio

Descripción

En este proyecto, deberás manipular el dataset mtcars utilizando R, específicamente con las librerías dplyr y tidyr. Se te pedirá seleccionar y filtrar columnas, ordenar y renombrar datos, crear nuevas columnas, agrupar información, unir dataframes y transformar el formato de los datos, manejando duplicados cuando sea necesario. Al final de cada operación, deberás imprimir los resultados para verificar el correcto funcionamiento.

1. Cargar las librerías y los datos

  • Asegúrate de estar trabajando en RStudio en tu ordenador local.
  • Verifica si tienes instaladas las librerías dplyr y tidyr. Si no las tienes, instálalas y cárgalas.
  • Utiliza la función data() para cargar el dataset mtcars y conviértelo en un dataframe si es necesario:
data(mtcars)
df <- as.data.frame(mtcars)

2. Selección de columnas y filtrado de filas

  • Emplea la función select() para escoger las columnas mpg, cyl, hp y gear.
  • Aplica filter() para conservar únicamente las filas donde el número de cilindros (cyl) sea mayor que 4.

3. Ordenación y renombrado de columnas

  • Usa la función arrange() para ordenar los datos de forma descendente según la columna hp (potencia).
  • Renombra las columnas mpg y hp a consumo y potencia respectivamente utilizando rename().

4. Creación de nuevas columnas y agregación de datos

  • Con mutate(), crea una nueva columna llamada eficiencia, calculada como el cociente entre consumo y potencia.
  • Usa group_by() y summarise() para agrupar los datos por el número de cilindros (cyl) y calcular el consumo medio y la potencia máxima por cilindro.

5. Creación del segundo dataframe y unión de dataframes

  • Genera un nuevo dataframe con la siguiente información sobre gear (número de marchas) y tipo_transmision (tipo de transmisión).
gear          tipo_transmision
3Manual
4Automática
5Semiautomática
  • Realiza un left_join() para combinar el dataframe principal con este segundo dataframe, añadiendo la columna tipo_transmision.

6. Transformación de formatos

  • Transforma el dataframe a formato largo utilizando pivot_longer() para las columnas consumo, potencia y eficiencia.
  • Identifica las combinaciones duplicadas: Agrupa por las columnas clave (cyl, gear, tipo_transmision, medida) para identificar posibles duplicados antes de transformar nuevamente a formato ancho.
  • Transforma de nuevo a formato ancho con pivot_wider(), aplicando una función de agregación como mean() para manejar los duplicados.

7. Verificación

  • Imprime el dataframe después de cada operación para asegurarte de que cada paso se ha realizado correctamente.

Solución al ejercicio de programación en R

Contenido bloqueado

¡Desbloquea la solución completa!

Completa el ejercicio de programación en R para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.

solution.js
JavaScript
1 function solveChallenge ( input ) {
2 // Algoritmo optimizado O(n log n)
3 const data = parseInput ( input );
4 const sorted = data . sort (( a , b ) => a - b );
5
6 // Aplicar técnica de dos punteros
7 let left = 0 , right = sorted . length - 1 ;
8 const result = [];
9
10 while ( left < right ) {
11 const sum = sorted [ left ] + sorted [ right ];
12 if ( sum === target ) {
13 result . push ([ sorted [ left ], sorted [ right ]]);
14 left ++; right --;
15 } else if ( sum < target ) {
16 left ++;
17 } else {
18 right --;
19 }
20 }
21
22 return result ;
23 }
Código completo
Explicaciones
Mejores prácticas
+1.200 developers han resuelto este ejercicio de programación

Practica con ejercicios de programación en R

Mejora tus habilidades con cientos de ejercicios de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.

Asistente de IA

Aprende de tus errores

Progreso

Mide tu avance

Certificación

Valida tus habilidades

Únete a miles de desarrolladores mejorando sus habilidades en R

⭐⭐⭐⭐⭐
4.9/5 valoración