计算数据点阵列与平均值的最大距离,并返回相关数据点
Calculate the max distance from the mean for array of datapoints and return relevant datapoint
假设我有一个数据数组,如下所示:
var data = [{name: "craig", value: 10}, {name: "oliver", value: 15}]
我想使用一个允许以下参数的函数:
function separateTheWheatFromTheChaff(windowSize, pointsTaken, data, valueAccessor) {}
其中windowSize是要计算的数组位置数,pointsTaken是要返回的dataPoints数。
所以我知道我需要求和来求平均值。我需要计算每个数组位置相对于平均值的math.abs,并比较每个结果以找到离平均值最远的数据点数组位置,然后将原始数据点值返回到新数组。
到目前为止,我有:
var data = [{name: "craig", value: 10}, {name: "oliver", value: -10}]
function separateTheWheatFromTheChaff(windowSize, pointsTaken, data, valueAccessor) {
var i;
sum = 0;
for(i = 0; i < windowSize; i++) {
sum += valueAccessor(data[i]);
}
mean = sum/windowSize
for (i = 0; i < windowSize; i++) {
Math.abs(valueAccessor(data[i]) - mean)
}
}
separateTheWheatFromTheChaff(5, 1, data, function(item) { return item.value });
所以我的问题是,我需要如何修改将WheatFromTheChaff函数分离以计算数组位置其中数据点离平均值最远,并返回所述数据点到新阵列。
提前谢谢,我希望这是合理的。
这里有一种方法:
编辑答案:
//create an array to store all distances
var distances = [];
for (i = 0; i < windowSize; i++) {
//calculate distance from mean
var distance = Math.abs(valueAccessor(data[i]) - mean);
//store initial datapoint with its distance from mean in array
var datapoint_w_distance = {datapoint: data[i],
dist: distance}
distances.push(datapoint_w_distance)
}
//sort array so datapoint with largest distance from mean is first
distances.sort(function(a,b) {return b.dist-a.dist});
//use the pointsTaken parameter to get the correct number of original datapoints back
var wheat = [];
for (var j=0; j < pointsTaken; j++) {
wheat.push(distances[j].datapoint)
}
return wheat;
例如,如果
var data = [{name: "a", value: 20},
{name: "b", value: 10},
{name: "c", value: 90},
{name: "d", value: 100},
{name: "e", value: 0}]
则CCD_ 1返回阵列CCD_
工作小提琴:https://jsfiddle.net/ubbrx3u3/5/
相关文章:
- JSON数组数据返回Undefined
- AngularJS中的页面之间共享数据返回空
- post()向服务器动态生成的数据返回空响应
- 如何从jQuery对象文本正确调用服务器端ASP.NET并将数据返回给jQuery
- d3从mysql数据库导入数据返回“0”;未定义”;
- JSON可以't访问数据返回未定义
- 让 ajax 数据返回到调用函数 - 需要澄清之前的答案
- ajax 调用 PHP 数据返回 VM92:1 未捕获语法错误:意外的标记 {.
- Jquery ajax 请求无法将数据返回给其他函数
- 在 jquery 中将数据返回给 ajax 调用
- Meteor.methods:从内部回调将数据返回给客户端
- 将PHP数据返回到我当前的网页,供Javascript访问
- ajax 调用如何将数据返回给变量
- 将数据返回到索引.js节点表达式
- j查询帖子数据返回比较不起作用
- 节点 API 未将数据返回给客户端 ajax 请求
- jQuery 函数在 AJAX 数据返回上不起作用
- AJAX 将数据返回给 jquery
- 中继:获取递归数据返回空值
- 根据chrome.storage中的数据返回chrome.webRequest.onBeforeRequest的值