From 3e8f66f26274fd1a7117b1d423ef8d1768cc8d4a Mon Sep 17 00:00:00 2001 From: Josh de Leeuw Date: Wed, 10 May 2023 09:43:37 -0400 Subject: [PATCH 1/2] ignore undefined / null values for `mean()` - #2905 --- packages/jspsych/src/modules/data/DataColumn.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/jspsych/src/modules/data/DataColumn.ts b/packages/jspsych/src/modules/data/DataColumn.ts index 6e1153e3..ff29922f 100644 --- a/packages/jspsych/src/modules/data/DataColumn.ts +++ b/packages/jspsych/src/modules/data/DataColumn.ts @@ -10,7 +10,18 @@ export class DataColumn { } mean() { - return this.sum() / this.count(); + let sum = 0; + let count = 0; + for (const value of this.values) { + if (typeof value !== "undefined" && value !== null) { + sum += value; + count++; + } + } + if (count === 0) { + return undefined; + } + return sum / count; } median() { From f9eb17c376d07003a30cd1aca42ca55e8d2b7488 Mon Sep 17 00:00:00 2001 From: Josh de Leeuw Date: Wed, 10 May 2023 09:47:04 -0400 Subject: [PATCH 2/2] add changeset --- .changeset/forty-weeks-walk.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/forty-weeks-walk.md diff --git a/.changeset/forty-weeks-walk.md b/.changeset/forty-weeks-walk.md new file mode 100644 index 00000000..b0133a1e --- /dev/null +++ b/.changeset/forty-weeks-walk.md @@ -0,0 +1,5 @@ +--- +"jspsych": major +--- + +Changed the behavior of `DataColumn.mean()` to exclude `null` and `undefined` values from the calculation, as suggested in #2905