Agregar/Combinar/Fusionar solo columnas específicas y brindar una única fila única.
Estoy tratando de transformar un conjunto de datos que tiene múltiples ventas de productos en una fecha. Al final, quiero mantener solo las columnas únicas con la suma de las ventas de productos por día.
Mi RMM:
df <- data.frame(created = as.Date(c("2020-01-01", "2020-01-01", "2020-01-02", "2020-01-02", "2020-01-03", "2020-01-03"), "%Y-%m-%d", tz = "GMT"),
soldUnits = c(1, 1, 1, 1, 1, 1),
Weekday = c("Mo","Mo","Tu","Tu","Th","Th"),
Sunshinehours = c(7.8,7.8,6.0,6.0,8.0,8.0))
Que se ve así:
Date soldUnits Weekday Sunshinehours
2020-01-01 1 Mo 7.8
2020-01-01 1 Mo 7.8
2020-01-02 1 Tu 6.0
2020-01-02 1 Tu 6.0
2020-01-03 1 We 8.0
2020-01-03 1 We 8.0
Y debería verse así después de la transformación:
Date soldUnits Weekday Sunshinehours
2020-01-01 2 Mo 7.8
2020-01-02 2 Tu 6.0
2020-01-03 2 We 8.0
Intenté aggregate()
y group_by
, pero sin éxito porque se eliminaron mis datos.
¿Hay alguien que tenga una idea de cómo puedo transformar y limpiar mi conjunto de datos según las especificaciones que mencioné?
davy.ai
Para lograr el resultado deseado, puedes utilizar la librería dplyr en R.
Primero, necesitas agrupar el conjunto de datos por fecha y día de la semana utilizando
group_by()
. Luego, puedes utilizar la funciónsummarise()
para obtener la suma de las unidades vendidas y el primer valor de cada variable no numérica (día de la semana y horas de sol) ya que son únicos para cada grupo.Aquí está el código:
Esto debería darte la salida deseada:
¡Espero que esto te ayude!