アプリ版:「スタンプのみでお礼する」機能のリリースについて

例 10秒のデータで1秒毎の最大値を求めたいのですが1秒目30個のデータ
2秒目20個のデータ、3秒目50個のデータ・・・10秒目10個のデータと変数の場合
関数で求めるにはどうしたらいいのでしょうか教えてください。

質問者からの補足コメント

  • すみません
    A列に時間(等速ではありません)B列には信号の大きさ(dB)です。
    音の大きさなのですがしきい値を越えたものしか記録しないので
    経過時間順ですが間隔はバラバラで1秒毎にデータ数が変化します。

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/03/08 11:01

A 回答 (6件)

関数って、プログラム上の関数で、



time.max(t)

のように、例えばt=5を引数にして呼び出すと、5秒台のmax値が戻り値になるような関数のことですか?

だとしたら、
・A列の値を床関数で丸めて、引数tに合致する行を抽出
・抽出されたデータのB列の最大値を求めて返す

で良いのでは?
エクセルでもVBで書けますよね(私はR使いなので無理ですが)。
    • good
    • 0

データを見て 色々な分析をするしかないでしょうね。


等速でないデータならば、どんな法則に従っているかを
見極めるだけでも かなりの作業になるでしょうね。
「こうすれば 関数化できる」と云う魔法は無いと思います。
    • good
    • 0

「データ」って何のデータですか?


「信号の大きさ(dB)」ということですか?

だったら、時間間隔が一定であろうとバラバラであろうと、「信号の大きさ(dB)」そのものを比較すれば「最大値」が求まりますよね?

1秒ごとの「平均」どうしで比較したいなら、各1秒ごとの「平均値」を求めればよい。小学生でも知っているように
 (その1秒間のデータの合計)/(データの点数)
で平均値が求まる。
(dB 単位での平均か、リニアな数値としての平均かは、データの意味や「平均」の意味合いを考慮して自分で判断してください)
ただし、「しきい値を越えたものしか記録しない」のであれば、正確な「平均値」は得られません。

とびとびのデータから関数を作るのは難しいと思います。

「何をしたいのか」をご自分できちんと定義できることが出発点です。
まずはそれを明確にしてみてください。
    • good
    • 0

出力されたデータに対して、作業を行うのであれば


ピボットテーブルとかで解決できませんか?

私だったら、日、時、秒、の列を作って、
ODBCで接続して、グループ化して、
SQLで答えだすかもしれませんが、、、
    • good
    • 0

データはどこにどのような形で入っている(来る)のですか?


そのデータに対して、どのようにアクセスできるのですか?
    • good
    • 0

質問内容だけでは、分かりません。


そのデータは 等速ですか、
それとも 加速度がある 速度ですか。
それによって 考え方は 全く変わります。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!