首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多列数据上使用Reductio的异常聚合函数?

如何在多列数据上使用Reductio的异常聚合函数?
EN

Stack Overflow用户
提问于 2016-07-09 23:39:44
回答 1查看 245关注 0票数 1

我正在做一个数据可视化项目,我正在使用dc.js库。将数据转换为平面数据结构(用于交叉筛选)后,数据如下所示:

代码语言:javascript
复制
[{"date":"2015-01-01","region":1,"cancer":10,"diabetes":5,"aqi_index":66,"pm2_5":20,"pm10":35},{"date":"2015-01-01","region":2,"cancer":30,"diabetes":25,"aqi_index":66,"pm2_5":20,"pm10":35}]

我有一个用来显示空气污染数据的折线图和一个用来显示医疗记录的堆积面积图。

这就是我面临的一个问题。如您所见,我的表包含每个日期的两行,每个区域一行。医疗数据因地区而异;然而,在同一日期,两个地区的空气污染数据是相同的。因为我使用以下代码来获得空气污染物与时间的关系图:

代码语言:javascript
复制
var ndx = crossfilter(data);
var dateDim = ndx.dimension(function(d) {return d["date"];});

var aqi = dateDim.group().reduceSum(function(d) {return d["aqi_index"];});
var pm2_5 = dateDim.group().reduceSum(function(d) {return d["pm2_5"];});
var pm10 = dateDim.group().reduceSum(function(d) {return d["pm10"];});

我的空气污染数据图表变得不准确,因为我显示的污染物数量是每个日期的两倍。如何使用Reductio的异常聚合功能显示每个日期的每个污染物读数(AQI指数、PM2.5、PM10)的唯一值?这样做会影响我的医疗数据图表吗?

EN

回答 1

Stack Overflow用户

发布于 2016-07-10 00:30:44

我认为这应该行得通:

代码语言:javascript
复制
var ndx = crossfilter(data);
var dateDim = ndx.dimension(function(d) {return d["date"];});
var dateGroup = dateDim.group()
var reducer = reductio()

// Value allows multiple aggregations on the same group.
// Here aggregate all values on the "cancer" property for a date.
reducer.value("cancer").sum("cancer")

// Here aggregate only the first value of the "aqi_index" property for a date to
// avoid double-counting
reducer.value("aqi_index").exception("date").exceptionSum("aqi_index")

reducer(dateGroup)

添加任意数量的值聚合,以聚合组上的所有度量。如果出现错误,请告诉我。

示例JSFiddle (请参阅控制台查看结果):https://jsfiddle.net/esjewett/5onebhsd/1/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38283468

复制
相关文章

相似问题

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