使两个数据数组之一不那么详细/减少总长度的方法?

时间:2019-07-10 17:19:34

标签: javascript object dataset standard-deviation

我有两个x-y数据集,它们形成两个潜在相关的散点图。

第一个数据集的近似域(x轴)为0到25,000,范围(y轴)为0到0.3。第二个数据集的近似域为0到550,范围为0到4.5。第一个数据集更加精确,可以认为是正确的。

每个数据集的x和y轴以(示例)data: { xAxis: [0,1,2,3,4...], yAxis: [0.20779456198215485, 0.20824825763702393, 0.20915564894676208, 0.20960935950279236...] }的形式存储。

我如何正确地删除或减少第一个数据集对象中的xy坐标对,使其在第二个对象中具有相同数量的点(以便它们可以叠加以用于图形/标准偏差)?

我不一定需要代码,我只是在寻求有关如何以保持数据完整性的方式解决问题的帮助,而不仅仅是随机删除数据。我想一种方法可能是返回spearman的相关常数作为从数据集中删除各个点的结果,并将最终结果分配给任何数据集点删除返回最高的spearman常数。

1 个答案:

答案 0 :(得分:0)

答案

您可以使用Math.min对最短长度进行四重分配,然后合并剩余数据:

xAxis.length = yAxis.length = xAxis2.length = yAxis2.length = Math.min(xAxis.length, xAxis2.length);
return { xAxis, yAxis, xAxis2, yAxis2 }

let 
dataset_1 = { xAxis: [0,1,2], yAxis: [0,1,2] },
dataset_2 = { xAxis: [0,1,2,3,4], yAxis: [0,1,2,3,4] }

function combine(d1,d2) {
let {xAxis, yAxis} = d1, 
{xAxis: xAxis2, yAxis: yAxis2} = d2;

xAxis.length = yAxis.length = xAxis2.length = yAxis2.length = Math.min(xAxis.length, xAxis2.length);

return { xAxis, yAxis, xAxis2, yAxis2 }
}

console.log( 
  combine(dataset_1, dataset_2) 
);


注意事项:

仅当您的xy信息分组同步且两个数组的长度相同时,以上方法才有效。大多数人会认为是这种情况,但如果没有,请随时发表评论。