【问题标题】:Datatable data at different frequencies不同频率的数据表数据
【发布时间】:2013-01-01 14:51:43
【问题描述】:

我的数据表有 19 列,第一列都以毫秒为单位填充时间戳:
18491
18591
18691
...

在时间戳列中,时间会随机从+100增量变为+50增量:
20291
20341
20391
20441
...

然后再回来,多次。

其他列有不同的数据值,分布在不同的频率上,例如 1 Hz、5Hz、10Hz,值之间有 double.NaN。

将这些列平均为 1Hz 数据的最佳方法是什么,同时忽略 NaN 单元并创建一个只有 1Hz 数据且没有空白的新数据表?
即:

发件人:
时间 Col1 Col2 Col3 Col4 Col5
18491 4.0 2.2 NaN 1.0 NaN
18591 NaN NaN 1.0 1.0 NaN
18691 NaN 3.2 NaN 2.0 NaN
18791 NaN NaN NaN 3.0 NaN
18891 NaN 4.4 NaN 1.0 NaN
18991 NaN NaN NaN 4.0 NaN
19091 NaN 1.4 6.0 4.0 NaN
19191 NaN NaN NaN 3.0 NaN
19291 NaN 3.2 NaN 2.0 NaN
19341 NaN NaN NaN NaN 2.0
19391 NaN NaN NaN 3.0 NaN
19441 6.0 3.4 NaN NaN 1.0
19491 NaN NaN NaN 2.0 NaN
19541 NaN NaN NaN NaN 3.0
19591 NaN NaN 3.0 4.0 NaN
19641 NaN 5.2 NaN NaN 1.0
19691 NaN NaN NaN 2.0 NaN
19791 NaN NaN NaN 1.0 NaN
19891 NaN 4.1 NaN 0.0 NaN
19991 NaN NaN NaN 2.0 NaN
20091 NaN 2.2 4.0 1.0 NaN
20191 NaN NaN NaN 1.0 NaN
20291 NaN 5.1 NaN 1.0 NaN
20391 NaN NaN NaN 1.0 NaN
20491 5.0 3.3 NaN 2.0 NaN

收件人:
时间 Col1 Col2 Col3 Col4 Col5
18491 4.0 2.2 NaN 1.0 NaN
19491 6.0 3.21 3.5 2.5 1.5
20491 5.0 3.98 3.5 1.5 2.0

感谢任何帮助,我还是 C# 和数据表的新手,所以提前谢谢大家!

【问题讨论】:

  • 为什么你的结果都四舍五入到 491?那是赫兹吗?
  • 如果不是,那么您可能真正想要的是聚类算法,因为您四舍五入的结果会有所不同。
  • 对,所有时间戳都以毫秒为单位,但数据是在这些特定时间记录的。这只是一个示例数据表,其他数据表具有不同的时间戳,以其他值结尾。真的,我认为它是 18.491、19.491 等。

标签: c# datatable


【解决方案1】:
With Rounded as
(
   Select ROUND(SomeColumn, -3) as RoundedToThousands From SomeTable
)
Select RoundedToThousands, Count(*) from Rounded 
Group By RoundedToThousands

您需要修改舍入逻辑,以符合您决定 491 与 441 作为四舍五入数字的要求。可能是地板而不是圆形的某种组合,然后是 + 491。

【讨论】:

  • 但是如何将相应的列平均为与时间戳匹配的 1Hz 数据?尤其是记录值之间的 NaN?
  • 你的平均水平是多少?你只有一列。如果我说给我一个班级的平均成绩,结果是单行。如果我说,按年龄平均成绩,那么我得到每个年龄的平均值。您的输入只有一列,但您的输出有多行,所以这不可能是平均值。我的意思是,您所描述的内容非常不清楚。您的一件事示例仅显示 *91 的值,但如果您平均一些值为 41 的值和一些为 91 的值,则必然会得到其他中间值。
  • @Freddy 例如,您的示例中 20341 和 20391 的平均值为 20366,但您的示例显示的结果为 20491。因此从您的示例中可以看出,您实际上是在四舍五入到最接近的491,这根本不是平均水平。因此,也许是一个更完整的示例,可能有十个起始行,并准确显示您希望输出的内容。
  • 感谢您的帮助亚伦,如果我不清楚,我很抱歉。我在我的问题中添加了一个更好的例子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
  • 2020-10-13
  • 2018-10-16
  • 1970-01-01
相关资源
最近更新 更多