Способ сделать один из двух массивов данных менее подробным / уменьшить общую длину? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть два набора данных 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 в первом объекте набора данных, чтобы иметь одинаковое количество точек во втором объекте (чтобы их можно было наложить для использования при построении графиков / стандартном отклонении)?

Мне не обязательно нужен код, я просто прошу помощи о том, как подходить к проблеме таким образом, чтобы поддерживать некоторую целостность данных, а не просто удалять данные случайным образом. Я полагаю, что одним из методов может быть возвращение константы корреляции Спирмена для результата удаления различных точек из набора данных и присвоение окончательного результата любой удаленной точке набора данных, которая возвращает наибольшую константу копья.

1 Ответ

0 голосов
/ 10 июля 2019

Ответ

Вы можете выполнить четырехкратное присвоение наименьшей длины, используя 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) 
);

Оговорка:

Вышеуказанное будет работать только в том случае, если ваша группировка информации x и y синхронизирована и оба массива имеют одинаковую длину. Большинство предположит, что это так, но не стесняйтесь комментировать, если нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...