gpt4 book ai didi

r - 使用R来获取波动率,并使用Peak求平均值。互联网流量数据比例

转载 作者:行者123 更新时间:2023-12-02 04:11:17 25 4
gpt4 key购买 nike

以下是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 )
}
)

但这不是我想要的。我想要每个类别的统计信息,其中首先将天的所有小时数总计为24小时,方法是对交易量求和,然后对波动率和PA比率求和。有什么改进建议吗?

最佳答案

您需要分两个阶段进行操作(使用plyr包):首先,正如您所指出的,同一类别可以有多个Day-Hour组合,因此我们首先针对每个类别汇总其在每个类别中的总计营业时间,与白天无关:

df1 <- ddply( df, .(Hour, Category), summarise, Volume = sum(Volume))

然后,您将获得统计信息:
> ddply(df1, .(Category), summarise,
+ Volatility = sd(Volume)/mean(Volume),
+ PeakToAvg = max(Volume)/mean(Volume) )

Category Volatility PeakToAvg
1 P2P 0.3225399 1.228070
2 Web NA 1.000000
3 email 0.2999847 1.212121
4 gaming 0.7071068 1.500000
5 video NA 1.000000
6 web 0.7564398 1.534884

关于r - 使用R来获取波动率,并使用Peak求平均值。互联网流量数据比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5059869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com