- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我犹豫是否要发布此内容,因为我没有取得重大进展。我可能应该离开一天。我正在尝试按日期计算平均值,以便在 HighStock 图表中使用。数据是json形式的。当我在同一天有两组数据时,就会出现问题,我需要根据日期对这些值进行平均。在给定的一天,可能有 0、1 或 2 个值。没有值的天数需要为 null 而不是 0,以便 highstock 将显示差距。我一直在尝试用js解决这个问题。从概念上讲,这似乎很容易;按日期分组,求和并除以长度。但我并没有取得很好的进步。这是fiddle没有我的错误。任何在正确方向上的帮助或插入都值得赞赏。
{
"nfdrs": {
"row": [{
"@num": "141",
"sta_id": "350920",
"sta_nm": "HEHE 1",
"latitude": "44.9559",
"longitude": "-121.4991",
"nfdr_dt": "08\/10\/2016",
"nfdr_tm": "13",
"nfdr_type": "O",
"mp": "1",
"msgc": "7C2P2",
"one_hr": "5",
"ten_hr": "6",
"hu_hr": "11",
"th_hr": "10",
"xh_hr": "8",
"ic": "28",
"kbdi": "304",
"sc": "8",
"ec": "14",
"bi": "27",
"sl": "3-",
"lr": "0",
"lo": "0",
"hr": "0",
"ho": "0",
"fl": "19",
"hrb": "60",
"wdy": "78",
"adj": "M"
}, {
"@num": "142",
"sta_id": "352108",
"sta_nm": "WARM SPRINGS BASE",
"latitude": "44.7795",
"longitude": "-121.2501",
"nfdr_dt": "08\/10\/2016",
"nfdr_tm": "13",
"nfdr_type": "O",
"mp": "1",
"msgc": "7A2A2",
"one_hr": "5",
"ten_hr": "6",
"hu_hr": "8",
"th_hr": "8",
"xh_hr": "3",
"ic": "19",
"kbdi": "587",
"sc": "34",
"ec": "2",
"bi": "22",
"sl": "2",
"lr": "0",
"lo": "0",
"hr": "0",
"ho": "0",
"fl": "16",
"hrb": "5",
"wdy": "60",
"adj": "L"
},
以及,如何在包含所有代码的同时控制该代码示例的大小>
最佳答案
我猜你的主要问题是“我如何在两个不同的数据集上以语法方式执行 groupBy”。
有很多方法可以做到这一点。一种方法是使用 reduce
函数将 2 个数据集合并为一个完整的数据集。
示例:
function printAverage(data) {
for (var time in data) {
// Do ec
var ec_totalValue = 0;
data[time].ec_values.forEach(value => { ec_totalValue += value; });
var ec_average = ec_totalValue / data[time].ec_values.length;
// do erc
var erc_totalValue = 0;
data[time].erc_values.forEach(value => { erc_totalValue += value; });
var erc_average = erc_totalValue / data[time].erc_values.length;
console.log("Time => " + time + ", average EC => " + ec_average + ", average ERC =>" + erc_average);
}
}
function getEpochTime(dateStr) {
return Date.parse(dateStr);
}
function hasDataForDate(dataset, epochTime) {
return dataset.hasOwnProperty(epochTime);
}
function addValue(dataset, item) {
var epochKey = getEpochTime(item.nfdr_dt);
if (!hasDataForDate(dataset, epochKey)) {
dataset[epochKey] = {};
dataset[epochKey].ec_values = [];
dataset[epochKey].erc_values = [];
}
if (item.ec) dataset[epochKey].ec_values.push(parseInt(item.ec));
if (item.erc) dataset[epochKey].erc_values.push(parseInt(item.erc));
return dataset;
}
function groupRows(data) {
return data.reduce(addValue, {});
}
var data =
{
"nfdrs": {
"row": [
{
"@num": "141",
"sta_id": "350920",
"sta_nm": "HEHE 1",
"latitude": "44.9559",
"longitude": "-121.4991",
"nfdr_dt": "08\/10\/2016",
"nfdr_tm": "13",
"nfdr_type": "O",
"mp": "1",
"msgc": "7C2P2",
"one_hr": "5",
"ten_hr": "6",
"hu_hr": "11",
"th_hr": "10",
"xh_hr": "8",
"ic": "28",
"kbdi": "304",
"sc": "8",
"ec": "14",
"erc": "80",
"bi": "27",
"sl": "3-",
"lr": "0",
"lo": "0",
"hr": "0",
"ho": "0",
"fl": "19",
"hrb": "60",
"wdy": "78",
"adj": "M"
},
{
"@num": "142",
"sta_id": "352108",
"sta_nm": "WARM SPRINGS BASE",
"latitude": "44.7795",
"longitude": "-121.2501",
"nfdr_dt": "08\/10\/2016",
"nfdr_tm": "13",
"nfdr_type": "O",
"mp": "1",
"msgc": "7A2A2",
"one_hr": "5",
"ten_hr": "6",
"hu_hr": "8",
"th_hr": "8",
"xh_hr": "3",
"ic": "19",
"kbdi": "587",
"sc": "34",
"ec": "2",
"erc": "100",
"bi": "22",
"sl": "2",
"lr": "0",
"lo": "0",
"hr": "0",
"ho": "0",
"fl": "16",
"hrb": "5",
"wdy": "60",
"adj": "L"
}]
}
};
var grouped = groupRows(data.nfdrs.row);
printAverage(grouped);
本质上,代码的作用是循环遍历数据行并检查“合并数据集”是否已经定义了该键。
如果有,则代码只需将该行的值插入值数组即可。否则,它定义一个 JS {}
对象并将其添加到该键下,然后将行值推送给它。
有关 reduce
的更多示例用法及其含义。
参见:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
关于javascript - 基于 json 到数组数组的日期的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39196876/
我有一个大小为 320x320 像素的阈值图像。我通过设置 ROI 以 20x20 像素的 block 循环遍历整个图像。我需要找到每个 block 的平均值。所以我将这些图像 block 传递给函数
我正在尝试学习 Javascript。我已经构建了以下代码来从一组数字中找到平均值。它有效除了最后返回的值总是 NaN。我不知道为什么。如果我将这 block 移到 block 外,它似乎完全忘记了变
假设我的数据已经分组,我该如何计算中位数和其他统计数据? Index Value Count 0 6 2 1 2 3 2 9 8 在上面
我试图计算的有趣情况。基本上在一行中,我有产品名称,其右侧的行是自首次收到产品以来经过的天数。 为 ex 计算的天数是 =TODAY()-BB2 我现在要做的是识别让我们说产品词“卡车”,然后计算卡车
我想知道如何计算某些数字的累积平均值。我将举一个简单的例子来描述我在寻找什么。 我有以下号码 vec 1) 为您的向量(或列表、一维数组或您如何称呼它)的每个元素评估此表达式,您将获得累积平均值。
我正在尝试对数据库表中的每一行进行平均。但它不能正常工作我想忽略该值,如果为空,它不会计算为零。使用我的代码,它将空值计算为零我想这样做 MS Excel 如果行/单元格为空,它将忽略。 Contro
我有以下信息(按 View 返回): DateTime ItemID UserTyp Seconds 2012-01-01 10 S 12 2012-01-01
我正在使用excel的average函数来获取欧洲各个城市一系列酒店价格的平均值。 =average(21,42,63,84,105) 我希望能够计算每个平均函数中的变量数量(例如,在上面的示例中有
我有一长串列,我想一次性计算非零中位数、平均值和标准差。我不能只删除基于 1 列的 0 行,因为同一列中另一列的值可能不是 0。 下面是我目前的代码,用于计算中位数、平均值等,包括零。 agg
这是我的问题: 我有一张这样的 table : Table Log int id; int time; timestamp DATE; int sid (FK to table Site);
JSON: [{"id":"1","user":"001","answer":"1,1,3,2,2,1,3,2"}, {"id":"2","user":"002","answer":"2,3,3,2,
有个问题: 使用适当的列名称,显示 obs 类型“CONT”的允许 ID 和平均 obs 值,其中 CONT 的平均 obs 值 >= 40。 假设承认是表1,观察是表2,但具有相同的主键Admit_
我有一个记录传感器数据的应用程序,我希望能够从多个传感器生成平均值,可以是一个、两个、三个或很多... 编辑:这些是温度传感器,因此 0 是传感器可能作为值存储在数据库中的值。 我最初的出发点是这个
我有这样一个数据框 id power flag 0 20 0 1 25 0 2 26 1 3 30 1 4 18 0 5
我想计算所有事件 blob 的平均位置。为此,首先我需要所有 X 和 Y 位置的总和。在这种情况下我该怎么做? contourFinder.findContours(grayImg, minB
我是一个十足的 Java 新手。上周一开始,之前从未用任何语言进行过任何编程。因此,如果我发现简单的事情变得复杂,请耐心等待。 我收到了一个文本文件。如下图: 第一个数据是时间(午夜过后的秒数),第二
我正在尝试为 Audacity 编写一个简单的测量插件,它就像用石头砸我的头骨一样有趣。我想要做的就是获取一段音频并找到所有样本的平均值(该 block 的 DC offset ),这样我就可以将它作
我正在尝试计算给定多边形内的值: 实际上我正在使用这个管道: 'aggregation': { 'pipeline': [ { "$match" : {
我有一个 pandas DataFrame,其中包含包含列表的列。我正在尝试获取此专栏中列表的方法。 这是我的 DataFrame 的示例: Loc Background 0
我尝试加速计算放置在数组中的4d向量的平均值。这是我的代码: #include #include #include #include #include #include typedef f
我是一名优秀的程序员,十分优秀!