Last active
August 29, 2015 14:05
-
-
Save clyce/41d15ebdc12ef92b8735 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(def test-vec | |
[{:age 14 :gender :female} | |
{:age 15 :gender :male} | |
{:age 17 :gender :female} | |
{:age 13 :gender :male}]) | |
(def test-vec-2 | |
[{:age 12 :gender :female} | |
{:age 18 :gender :male} | |
{:age 23 :gender :female} | |
{:age 9 :gender :male}]) | |
(def test-vec-3 | |
[{:age 9 :gender :female} | |
{:age 22 :gender :male} | |
{:age 20 :gender :female} | |
{:age 5 :gender :male}]) | |
(map (partial map :age) [test-vec test-vec-2 test-vec-3]) | |
;=> ((14 15 17 13) (12 18 23 9) (9 22 20 5)) | |
(map (comp (partial apply hash-map) | |
(partial mapcat (fn [[k v]] [k (count v)])) | |
(partial group-by identity)) | |
((juxt (partial map :age) (partial map :gender)) | |
test-vec)) | |
;=> ({15 1, 13 1, 17 1, 14 1} {:female 2, :male 2}) | |
(def generate-count | |
(comp (partial apply hash-map) | |
(partial mapcat (fn [[k v]] [k (count v)])) | |
(partial group-by identity))) | |
(generate-count [:apple :pear :apple :berry :pear :berry]) | |
;=> {:apple 2, :pear 2, :berry 2} | |
(def generate-counts | |
(partial map generate-count)) | |
(generate-counts [[:apple :pear :apple :berry :pear :berry] | |
[:tom :jerry :tom :tom :jerry :alice] | |
[1 3 2 4 3 1 1 4 2]]) | |
;=> ({:apple 2, :pear 2, :berry 2} {:alice 1, :tom 3, :jerry 2} {1 3, 4 2, 3 2, 2 2}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment