Rデータセットには、次の10日間の1時間ごとのネットワークトラフィックデータがあります。
Day Hour Volume Category
0 00 100 P2P
0 00 50 email
0 00 200 gaming
0 00 200 video
0 00 150 web
0 00 120 P2P
0 00 180 web
0 00 80 email
....
0 01 150 P2P
0 01 200 P2P
0 01 50 Web
...
...
10 23 100 web
10 23 200 email
10 23 300 gaming
10 23 300 gaming
ご覧のとおり、1時間以内にカテゴリの繰り返しもあります。これらのさまざまなアプリケーションカテゴリのボラティリティとピーク時と平均時の比率を計算する必要があります。
ボラティリティ:1時間あたりのボリュームを1時間あたりの平均で割った標準偏差。
平均までのピーク時間 時間比率:ボリュームに対する最大時間のボリュームの比率。そのアプリケーションの平均時間の。
では、カテゴリごとにこれら2つの統計を集計して計算するにはどうすればよいですか?私はRを初めて使用し、前述のように平均を集計して取得する方法についてあまり知識がありません。
したがって、最終的な結果は次のようになります。最初に、各カテゴリのボリュームが、ボリュームを合計してから2つの統計を計算することにより、単一の24時間で集計されます。
Category Volatility Peak to Avg. Ratio
Web 0.55 1.5
P2P 0.30 2.1
email 0.6 1.7
gaming 0.4 2.9
編集:plyrはこれまで私を手に入れました。
stats = ddply(
.data = my_data
, .variables = .( Hour , Category)
, .fun = function(x){
to_return = data.frame(
volatility = sd((x$Volume)/mean(x$Volume))
, pa_ratio = max(x$Volume)/mean(x$Volume)
)
return( to_return )
}
)
しかし、これは私が望んでいたことではありません。カテゴリごとの統計が必要です。ここでは、ボリュームを合計してから、ボラティリティとPA比率を計算することにより、1日のすべての時間が最初に24時間に集約されます。改善のための提案はありますか?