大規模な Matlab データセットがあります (1,924,014 x 5; ~73.4 MB)
Date id a b c
...
733234 1467 1.2656 1.2718 51.16
733235 1467 1.2732 1.2794 51.16
733236 1467 1.2781 1.2844 51.5
733236 1467 1.26 NaN NaN
733237 1467 1.3084 NaN NaN
733237 1467 1.3205 NaN NaN
733238 1467 1.3125 1.3188 53.85
733238 1467 1.3 NaN NaN
...
Date
形式の日付datenum
です。特定の Date+id ペアに複数の行がある場合があるため、一意の+ペアの最後の 3 つの列
を平均化する (s を無視する) 必要があります。NaN
Date
id
私が望む出力は
Date id mean_a mean_b mean_c
...
735234 1467 1.2656 1.2718 51.16
735235 1467 1.2732 1.2794 51.16
735236 1467 1.2691 1.2844 51.5
735237 1467 1.3144 NaN NaN
735238 1467 1.3062 1.3188 53.85
...
使えると思っていた
grpstats(myDataset, {'Date', 'id'}, 'mean')
しかし、それは法外に遅いです。このタスクは 60 秒以内に完了できると思います。grpstats
GroupCount 列を追加し、各観測に名前を追加していると思いますが、これは必要ありません。
どうすればこれをすばやく行うことができますか? を使用するかどうかに関係なく、私はアイデアを受け入れますgrpstats
。