Ciao huys: voglio mappare una "media" per tutti i valori in una mappa. dire che ho un elenco di mappe:Posso "trasporre" un elenco di mappe in una mappa di elenchi in Clojure?
[{"age" 2 "height" 1 "weight" 10},
{"age" 4 "height" 4 "weight" 20},
{"age" 7 "height" 11 "weight" 40}]
E il mio output desiderato è
{"age 5 "height" 5 ....}
/// seguito sono elencate le divagazioni del mio cervello, vale a dire il modo in cui avrei potuto immaginare questo lavoro in Clojure .. .non essere preso troppo sul serio
recepire l'elenco:
{"age" [2 4 7] "height" [1 4 11] }
e quindi ho potuto semplicemente fare qualcosa come (ancora una volta, che costituiscono una funzione chiamata freduce qui)
(freduce average (vals (map key-join list)))
per ottenere
{"age" 5 "weight" 10 "height" 7}
Si intende ridurre in modo da non dover attraversare la sequenza due volte. Inizierai con una mappa vuota come accumulatore e man mano che la tua riduzione arriva in ogni mappa, somma tutti i valori con i valori corrispondenti nell'accumulatore. Sull'ultimo elemento della lista dividere ogni valore per la lunghezza della lista. –
In realtà voglio fare matematica più sofisticata sui dati (deviazione standard, ...), quindi penso di voler disaccoppiare il modo in cui i dati vengono uniti dal modo in cui viene trasposto. – jayunit100