Arrays Clojure-按集值划分

Arrays Clojure-按集值划分,arrays,sorting,clojure,partitioning,Arrays,Sorting,Clojure,Partitioning,我有一个查询,它返回一个表中按这些对象分组的对象计数,尽管我想在后面做的是首先将值从最高到最低排序,然后将它们划分为10个组 到目前为止,我所拥有的允许我将计数的值从最大值排序到最小值,或者,如果我对排序进行注释,则允许我将这些值按设定的数字进行分区。我想知道我哪里出了问题,因为我看不见。我首先从查询中提取对象的数量,对它们进行排序,然后尝试将它们划分到数组中,我将在稍后阶段对这些数组进行索引: tosort(map(keyword :objectscounted)data) sorted(so

我有一个查询,它返回一个表中按这些对象分组的对象计数,尽管我想在后面做的是首先将值从最高到最低排序,然后将它们划分为10个组

到目前为止,我所拥有的允许我将计数的值从最大值排序到最小值,或者,如果我对排序进行注释,则允许我将这些值按设定的数字进行分区。我想知道我哪里出了问题,因为我看不见。我首先从查询中提取对象的数量,对它们进行排序,然后尝试将它们划分到数组中,我将在稍后阶段对这些数组进行索引:

tosort(map(keyword :objectscounted)data)
sorted(sort > tosort)
part(into [] (partition-all 10 sorted))

在使用分区的时候,我也被卡住了——我需要10组值,而不是每组10个值,这里的任何帮助都是非常感谢的!提前感谢

如果我正确理解了您的问题,您所需要的就是根据您的
排序
列表元素计数进行动态分区:

user> (def v (range 50))
#'user/v
user> (clojure.pprint/pprint (partition-all (/ (count v) 10) v))
((0 1 2 3 4)
 (5 6 7 8 9)
 (10 11 12 13 14)
 (15 16 17 18 19)
 (20 21 22 23 24)
 (25 26 27 28 29)
 (30 31 32 33 34)
 (35 36 37 38 39)
 (40 41 42 43 44)
 (45 46 47 48 49))
当然,如果元素总数不能被10整除,那么您的结果将有10个以上的组,除非您有不同的策略在组之间分配元素