我在以下 R 数据集中有十天期间每小时的网络流量数据,如下所示。
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
正如所见,在一个小时内也有类别的重复。我需要计算这些不同应用程序类别的波动性和高峰小时与平均小时的比率。
波动率:每小时交易量的标准差除以每小时平均值。
平均高峰时间。小时比率:最大小时的音量与音量的比率。该应用程序的平均小时数。
那么如何聚合和计算每个类别的这两个统计数据呢?我是 R 新手,对如何汇总和获取上述平均值知之甚少。
因此,最终结果看起来像这样,首先每个类别的交易量在一个 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 比率来聚合为 24 小时。有什么改进的建议吗?