我想我误解了clojure中的GET -我试图从另一个数据集中模型化一个数据集,从下面的A到B。
一个
ID地域最小值
10346 GLBL 106
10346亚太区106
10346北美106
10346 LATAM 106
10346 EMEA 106
10347 GLBL32
10347亚太区32
10347 NA 32
10347 LATAM 32
10347 EMEA 32
10349 NA 10
10327不适用
10344 EMEA 8
10342亚太地区292
10342 EMEA292
10348亚太地区15
10422 EMEA 37
10438北美0
B
ID EMEA NA ASPAC GLBL LATAM
10346 106 106 106 10347 32 32 32
10349 0 10 0 0 0
10327 0 0 0
10344 8 0 0 0
10342 292 0 292 0 0
10348 0 0 15 0 0
10422 37 0 0 0
10438 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")
})))
))发布于 2013-04-11 23:13:45
这一点:
(let [a (fn [priority](get :MIN (filter #(= priority (:REGION %)) recs)))]应该是
(let [a (fn [priority](get (first (filter #(= priority (:REGION %)) recs)) :MIN))]https://stackoverflow.com/questions/15952176
复制相似问题