0

私のデータテーブルには 19 列あり、最初の列はすべてミリ秒単位のタイムスタンプで埋められています:
18491
18591
18691
...

タイムスタンプ列でランダムに、時間が +100 刻みから +50 刻みに変化します:
20291
20341
20391
20441
...

何度も戻ってきます。

他の列には、1 Hz、5Hz、10Hz などのさまざまな周波数で広がるデータのさまざまな値があり、値の間に double.NaN があります。

NaNセルを無視し、1Hzデータのみで空白のない新しいデータテーブルを作成しながら、これらの列を1Hzデータに平均化する最良の方法は何ですか?
すなわち:

From:
Time Col1 Col2 Col3 Col4 Col5
18491 4.0 2.2 NAN 1.0
NAN 18591 NAN NAN 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 4.0 NAN
19091 NAN 1.4 6.0 NAN 1.4 6.0 NAN 1.4 6.0 NAN 1.4 6.0 NAN 1.4 6.0 NAN 1.4 6.0 NAN 1.4
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 3.0
NAN 19441 6.0 3.4 NAN 1.0
19491 NAN NAN NAN 2.0 NAN 19541 NAN NAN NAN
3.0
19591 NAN 3.0 NAN NAN 3.0 NAN 3.0
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

To:
時間 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#とデータテーブルに慣れていないので、よろしくお願いします!

4

1 に答える 1

0
With Rounded as
(
   Select ROUND(SomeColumn, -3) as RoundedToThousands From SomeTable
)
Select RoundedToThousands, Count(*) from Rounded 
Group By RoundedToThousands

丸めロジックを変更して、491 対 441 を四捨五入する方法の要件に一致させる必要があります。おそらく、ラウンドではなく床の組み合わせ、そして+ 491.

于 2013-01-17T23:09:11.790 に答える