Javascript 获取多个数组中给定索引处所有元素的平均值
我有大约300个数组,每个数组有100个x和y值的数组。我想得到300个数组的y值的100个平均值的数组。最好的方法是什么?我想我应该使用一些减少,但我有点迷路了。 以下是我到目前为止的情况:Javascript 获取多个数组中给定索引处所有元素的平均值,javascript,arrays,d3.js,reduce,Javascript,Arrays,D3.js,Reduce,我有大约300个数组,每个数组有100个x和y值的数组。我想得到300个数组的y值的100个平均值的数组。最好的方法是什么?我想我应该使用一些减少,但我有点迷路了。 以下是我到目前为止的情况: let yval = cohort.map((d, i) => { let bin = d3.nest() .key(function(d) { return i; }) .rollup(function(d) {
let yval = cohort.map((d, i) => {
let bin = d3.nest()
.key(function(d) {
return i;
})
.rollup(function(d) {
return d;
})
.entries(d);
return bin;
});
console.log(yval);
“队列”是一组对象。我想隔离每个队列对象中的“bin”数组。每一个都有117个元素长。对于每个箱子[i],我想从所有箱子中得到[i]的平均值。我想基本上把300个117的数组变成一个117的数组。任何帮助都将不胜感激 关于如何计算JS中数组的平均值,已经有了答案: 您可以使用该答案中定义的函数,并将其映射到数组中。例如:
var result = cohort.map(cohortElement => cohortElement.bin).map(/*function declared in other StackOverflow answer*/)
要实现预期用途,请选择下面的ForEach和array reduce方法
var sampleArr=[];//用于测试的样本阵列
var meanList=[];//最终平均值列表数组
对于(变量i=0;i<301;i++){
sampleArr[i]=[]
对于(var j=0;j<2;j++){
样本arr[i].推({
x:我,
y:i+1
})
}
}
getMean=arr=>{
arr.forEach(e=>{
设sum=e.reduce(函数(a,c){
控制台日志(a,c);
返回a.y+c.y;
});
平均值列表推送(总和/长度);
});
};
getMean(样本数)
console.log(meanslist)代码>D3已经有一个名为的方法,该方法:
返回给定数字数组的平均值
因此,如果要获得每个内部数组的平均值,只需以下内容即可(其中data
是原始数组):
下面是一个基本演示:
var数据=[
[1, 2, 3, 4, 5],
[10, 20, 30, 40, 50],
[100, 200, 300, 400, 500]
];
var arrayOfMeans=data.map(d=>d3.mean(d));
console.log(arrayOfMeans)
嘿,谢谢你的帮助!数据结构有点奇怪。我在一个单独的可视化中使用队列,因此我提取了该数据的一个子集用于此。现在我正在测试一些选项,但我会做一些返工。再次感谢!
var arrayOfMeans = data.map(d => d3.mean(d));