Inicio › Foros › Etapa I – Raíces Profundas › Error en uno de las hojas de trabajo II23 › Respuesta a: Error en uno de las hojas de trabajo II23
JordiVoy a revisar el código y señalar algunas mejoras para que funcione correctamente en base al enunciado. Aquí van algunas observaciones y ajustes:
1. **Selección de coches con mpg > 25**:
Tu código para esta parte está bien estructurado, pero te faltó cerrar correctamente la cadena de operaciones (%>%) y el nombre del dataframe final no es consistente.
2. **Selección de coches con mpg > 25 y am = 1**:
Lo mismo que el paso anterior: el código está bien pero necesitas asegurarte de que esté bien encadenado y el nombre del dataframe sea consistente.
3. **Ordenar los coches por qsec con am=0 y gear=4**:
Aquí hay un error en la selección de columnas. Necesitas agregar la columna qsec en el select() para que puedas ordenar por esa variable.
4. **Calcular el promedio de wt agrupado por cyl y am**:
Este paso parece estar bien, pero no es necesario crear la variable de desviación estándar (sd()), a menos que sea parte de lo que te están pidiendo.
Voy a corregir el código para ti:
`r
library(dplyr)
data <- mtcars
# Selecciona solo los coches con un mpg más grande que 25
data_sel_1 <- data %>%
filter(mpg > 25)
# Selecciona solo los coches con un mpg más grande que 25 y am = 1
data_sel_2 <- data %>%
filter(mpg > 25, am == 1)
# Ordena los coches de mayor a menor en qsec y que sean de am = 0 y gear = 4
data_sel_3 <- data %>%
filter(am == 0, gear == 4) %>%
arrange(desc(qsec))
# ¿Qué coche tiene más qsec?
coche_mas_qsec <- data_sel_3 %>%
slice(1)
# Calcula el promedio de wt (peso) por cyl y am
data_sel_4 <- data %>%
group_by(cyl, am) %>%
summarize(Mean_wt = mean(wt), .groups = ‘drop’)
`
### Explicación de los cambios:
1. **data_sel_1**: Se ha usado filter(mpg > 25) directamente sin usar select() porque no es necesario para este paso. select() solo selecciona columnas, pero no filtra.
2. **data_sel_2**: Igual que el primer caso, puedes usar filter() directamente para seleccionar según condiciones, en este caso mpg > 25 y am == 1.
3. **data_sel_3**: Aquí agregué qsec en el filtro para que puedas ordenar correctamente. Además, añadí el filtro para am == 0 y gear == 4 como pide el enunciado, y luego usé arrange(desc(qsec)) para ordenar de mayor a menor.
4. **coche_mas_qsec**: Utilicé slice(1) para seleccionar el coche con el valor más alto de qsec después de ordenar la tabla.
5. **data_sel_4**: El cálculo del promedio de wt agrupado por cyl y am es correcto, y he dejado la función summarize() con el .groups = 'drop' para evitar advertencias de agrupación adicionales.
Espero que esto solucione tu problema. Si tienes alguna duda adicional, no dudes en preguntar.