我想我误解了 clojure 中的 GET - 我试图从另一个数据集从下面的 A 到 B 塑造 1 个数据集。
A
ID REGION MIN
10346 GLBL 106
10346 ASPAC 106
10346 NA 106
10346 LATAM 106
10346 EMEA 106
10347 GLBL 32
10347 ASPAC 32
10347 NA 32
10347 LATAM 32
10347 EMEA 32
10349 NA 10
10327 NA
10344 EMEA 8
10342 ASPAC 292
10342 EMEA 292
10348 ASPAC 15
10422 欧洲、中东和非洲 37
10438 不适用 0
B
ID EMEA NA ASPAC GLBL LATAM
10346 106 106 106 106 106 106 106 10347 32 32 32 32 32 32 32 32
10349 0 10 0 0 0 0 0 0 0 0 0
10327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0
10342 292 292 0 292 0 292 0 0
10348 0 0 0 15 0 0 15 0 0 15 0 0
1042222222 37 0 0 0 0
10438 0 0 0 0 0
group by 正在工作,但我得到所有区域的空值,我虽然过滤了我可以使用 get 获取该记录中 MIN 的值并将其映射到新区域字段的区域 - 任何关于我的建议在这里做错了吗?或者我应该使用什么来代替 GET?
(defn- create-summary [data]
(->> data
(group-by :ID
vals
(map
(fn [recs]
(let [a (fn [priority](get :MIN (filter #(= priority (:REGION %)) recs)))]
{:ID (:ID (first recs))
:EMEA (a "EMEA")
:NA (a "NA")
:GLBL (a "GLBL")
:LATAM (a "LATAM")
:ASPAC (a "ASPAC")
})))
))