window transform: strict median/deviation/variance/pXX check missing values at the wrong rows when there are several series

Ouverte Adaptée aux débutants
#2,471 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
85/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
javascript, node.js

Piste de recherche

Commencez par src/transforms/window.js et examinez reduceAccessor pour trouver le comptage strict des valeurs manquantes ; l’issue signale le décalage entre l’index de ligne et l’index de série. Reproduisez le problème avec l’exemple fourni Plot.windowY, puis vérifiez les tests de la transformation window pour les reducers stricts. Le travail est terminé lorsque median, deviation, variance et pXX placent les résultats manquants dans les mêmes lignes que mean pour plusieurs séries.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

With strict: true, the median, deviation, variance and pXX window reducers look for missing values at the within-series position instead of the row index, so any series that does not occupy rows 0..n-1 (a second z series, a later facet) gets gaps in the wrong places.

import * as Plot from "@observablehq/plot";

const data = [
  {i: 0, v: 1, g: "a"}, {i: 1, v: 10,   g: "b"},
  {i: 2, v: 2, g: "a"}, {i: 3, v: null, g: "b"},
  {i: 4, v: 3, g: "a"}, {i: 5, v: 30,   g: "b"},
  {i: 6, v: 4, g: "a"}, {i: 7, v: 40,   g: "b"}
];

const o = Plot.windowY({k: 2, reduce: "median", strict: true, anchor: "end"}, {x: "i", y: "v", z: "g"});
o.transform(data, [Uint32Array.from(data, (_, i) => i)]);
console.log(Array.from(o.y.transform()));

node t.mjs

Actual:

[ undefined, undefined, 1.5, 10, 2.5, 30, NaN, NaN ]

Expected (what reduce: "mean" gives on the same data):

[ undefined, undefined, 1.5, NaN, 2.5, NaN, 3.5, 35 ]

Series "a" has no missing values but loses its last window, and series "b" gets values for the two windows that contain null.

Tested with @observablehq/plot 0.6.19 and main 2245188, Node.js v26.13.0.

In reduceAccessor in src/transforms/window.js, v takes a row index but the strict NaN counting calls v(i) and v(i + k - 1); it should be v(I[i]) and v(I[i + k - 1]).

Credit: https://ucsbplse.github.io/

Langage dominant
HTML
Étoiles
5.4k
Forks
251
Merge moyen
2 j 1 h
PR mergées (30 j)
2

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de observablehq/plot

Toutes les issues de observablehq/plot

Issues similaires

Plus d'issues Data Visualization

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.