window transform: difference, ratio, first and last drop the trailing outputs of each series
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 88/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- javascript, node.js
- Domaine
- data-visualization, frontend
Piste de recherche
Lis src/transforms/window.js et examine reduceDifference, reduceRatio, reduceFirst et reduceLast. Compare les bornes de leurs boucles en mode strict et non strict au comportement décrit dans les exemples. Ajoute ou mets à jour des tests pour les sorties finales dans les deux modes, puis exécute les tests pertinents de la transformation window. Le travail est terminé lorsque ces reducers produisent les sorties complètes attendues, y compris les fenêtres finales tronquées lorsque strict vaut false.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The difference, ratio, first and last window reducers stop their loops early: with strict: true the last full window is missing, and with strict: false the last k - 1 - s truncated windows are missing. Other reducers such as mean fill these positions.
import * as Plot from "@observablehq/plot";
const run = (w, data) => {
const o = Plot.windowY(w, {x: "i", y: "v"});
o.transform(data, [Uint32Array.from(data, (_, i) => i)]);
return Array.from(o.y.transform());
};
const d = [2, 4, 8, 16].map((v, i) => ({i, v}));
console.log(run({k: 2, reduce: "difference", strict: true, anchor: "end"}, d));
console.log(run({k: 2, reduce: "ratio", strict: true, anchor: "end"}, d));
console.log(run({k: 1, reduce: "last", strict: true}, d));
console.log(run({k: 3, reduce: "first", anchor: "start"}, d));
console.log(run({k: 3, reduce: "difference", anchor: "start"}, d));
console.log(run({k: 3, reduce: "mean", anchor: "start"}, d));
node t.mjs
Actual:
[ undefined, 2, 4, undefined ]
[ undefined, 2, 2, undefined ]
[ 2, 4, 8, undefined ]
[ 2, 4, undefined, undefined ]
[ 6, 12, undefined, undefined ]
[ 4.666666666666667, 9.333333333333334, 12, 16 ]
Expected:
[ undefined, 2, 4, 8 ]
[ undefined, 2, 2, 2 ]
[ 2, 4, 8, 16 ]
[ 2, 4, 8, 16 ]
[ 6, 12, 8, 0 ]
[ 4.666666666666667, 9.333333333333334, 12, 16 ]
In a chart, Plot.lineY(data, Plot.windowY({k: 7, reduce: "difference"}, ...)) stops short of the right edge.
Tested with @observablehq/plot 0.6.19 and main 2245188, Node.js v26.13.0.
In src/transforms/window.js, reduceDifference, reduceRatio, reduceFirst and reduceLast use n = I.length - k in the strict branch (should be I.length - k + 1) and n = I.length - k + s + 1 in the non-strict branch (should be I.length - s, with the window clipped to I.length).
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
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de observablehq/plot
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
observablehq/plot#2471 ·
-
[Types] Wrong recursion in Mark’s _tip_ optionPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
observablehq/plot#2459 · 1 réaction ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
observablehq/plot#2453 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
observablehq/plot#2447 · 2 commentaires ·
-
Channel documentation with a section describing zPeut-être à nouveau libre @LeonxLJX l’a pris il y a 68 jours, et aucune pull request n’est ouverte. Ouvertedocumentation
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
observablehq/plot#1533 · 3 commentaires · 1 réaction ·
Toutes les issues de observablehq/plot
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: Command::Ls reports telemetry event as "info" instead of "ls"Peut-être pris @Pcmhacker-piro l’a pris il y a 1 jour. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
Les mainteneurs répondent en général sous 2 jours
-
partial() returns wrong values (silently) when train is a matrix and pred.var has two variablesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
bgreenwell/pdp#140 · 1 commentaire · 1 réaction ·
-
bin: stop can round 1 ulp below extent[1], so the maximum value is binned as +Infinity and droppedOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
Les mainteneurs répondent en général sous 1 jour