首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Group-by和data get

Group-by和data get
EN

Stack Overflow用户
提问于 2013-04-11 22:59:31
回答 1查看 69关注 0票数 0

我想我误解了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?

代码语言:javascript
复制
(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")
                 })))

    ))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-11 23:13:45

这一点:

代码语言:javascript
复制
(let [a (fn [priority](get :MIN (filter #(= priority (:REGION %)) recs)))]

应该是

代码语言:javascript
复制
(let [a (fn [priority](get (first (filter #(= priority (:REGION %)) recs)) :MIN))]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15952176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档