我正在构建一个表,我正在尝试在新列中添加一些计算值。我在这里复制了一个示例数据:http://bl.ocks.org/simonbreton/dbb04f0d8123bc41fcb231497a276848
我想计算每个超级英雄的平均每日救援人数。我从以下代码开始:
avgdailyrescue = d3.nest()
.key(function(d) { return d.name; })
.key(function(d) { return d.day;})
.rollup(function(v) { return {
count: v.length,
}; })
.entries(data);
console.log(JSON.stringify(avgdailyrescue));
所以我得到了这个结果:
[{"key":"batman","values":[{"key":"monday","values":{"count":1}}, {"key":"tuesday","values":{"count":2}}]},
{"key":"superman","values":[{"key":"friday","values":{"count":1}},{"key":"saturday","values":{"count":1}},{"key":"sunday","values":{"count":2}}]},
{"key":"ironman","values":[{"key":"sunday","values":{"count":2}},{"key":"wednesday","values":{"count":1}},{"key":"friday","values":{"count":1}},{"key":"monday","values":{"count":1}}]},
{"key":"Antman","values":[{"key":"monday","values":{"count":1}}]}]
但我真的不知道下一步该做什么......任何想法,任何帮助?
答案 0 :(得分:0)
你开了个好头。您只需要总计每天的总数,然后除以您已有的计数:
var avgdailyrescue = d3.nest()
.key(function(d) { return d.name })
.key(function(d) { return d.day })
.rollup(function(byDay) {
var count = byDay.length;
var total = d3.sum(byDay, function(d) { return d.rescue })
return total/count;
})
.entries(data)