0

テーブル内のこれらのオブジェクトによってグループ化されたオブジェクトの数を返すクエリがありますが、後でやりたいことは、最初に値を最高から最低に並べ替え、それらを 10 個のグループに分割することです。

これまでのところ、カウントされた値を最大から最小に並べ替えるか、並べ替えをコメントアウトするか、値を設定数で分割することができます。見えないので、ここでどこが間違っているのか知りたいです。最初にクエリからオブジェクトの数を取得し、並べ替えてから、後の段階でインデックスを作成する配列に分割しようとしています。

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

私が立ち往生しているのは、パーティションを使用するときです-各グループに10個の値ではなく、10個のグループの値が必要です。ここで助けていただければ幸いです! 前もって感謝します

4

1 に答える 1

1

あなたの問題を正しく理解していれば、sortedリスト要素の数に応じて動的に分割するだけで済みます。

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 を超えるグループが含まれます。

于 2013-11-09T17:28:14.173 に答える