agrupar y escalar / normalizar una columna en r
Tengo un marco de datos que se ve así:
Store Temperature Unemployment Sum_Sales
1 1 42.31 8.106 1643691
2 1 38.51 8.106 1641957
3 1 39.93 8.106 1611968
4 1 46.63 8.106 1409728
5 1 46.50 8.106 1554807
6 1 57.79 8.106 1439542
Lo que no puedo entender en R es cómo agrupar y aplicar. Entonces, para cada tienda (agrupada), quiero normalizar / escalar dos columnas (sum_sales y temperatura).
La salida deseada que quiero es la siguiente:
Store Temperature Unemployment Sum_Sales
1 1 1.000 8.106 1.00000
2 1 0.000 8.106 0.94533
3 1 0.374 8.106 0.00000
4 2 0.012 8.106 0.00000
5 2 0.000 8.106 1.00000
6 2 1.000 8.106 0.20550
Aquí está la función de normalización que creé:
normalit<-function(m){
(m - min(m))/(max(m)-min(m))
}
Estoy usando el paquete dply y parece que no puedo entender cómo agrupar y aplicar esa función a una columna. Intenté algo como esto y recibí un error:
df2 <- df %.%
group_by('Store') %.%
summarise(Temperature = normalit(Temperature), Sum_Sales = normalit(Sum_Sales)))
Cualquier sugerencia / ayuda sería muy apreciada. Gracias.