我喜欢使用igraph来显示交换机与受影响网络之间的关系,因为交换机存在问题。由于发生了很多事件,我想表明前10个交换机是最成问题的,因此会影响网络。
DF
Incident Date Switch ImpactedNetwork
123 1/1/2012 A Wireless
455 1/2/2012 B LocalLan
460 1/3/2012 A LocalLan
465 1/4/2012 A Production
等
每次使用swithc发生事故时判断1:
df$count<-c(1)
提出十大最有问题的开关:
library(data.table)
df<-df[, total := sum(count), by = Switch]
DF
Incident Date Switch ImpactedNetwork count Total
123 1/1/2012 A Wireless 1 3
455 1/2/2012 B LocalLan 1 1
460 1/3/2012 A LocalLan 1 3
465 1/4/2012 A Production 1 3
从这个df,如何根据Total获得前10名最高事件?
一旦我确定前十个交换机,我需要将ImpactedNetwork的总数计算为最有问题的交换机。
t<-aggregate(count~ImpactedNetwork+Switch, df, sum)
吨
ImpactedNework Switch count
Production A 1
Wireless A 1
plot(t, layout = layout.kamada.kawai, vertex.label = V(g)$name, vertex.label.color= "darkblue", edge.arrow.size=0.9, edge.curved=T, edge.label=t$count, edge.label.color="#F900F9", edge.label.font=10,vertex.shape="rectangle",edge.color="darkgreen", main="Top 10 Problematic Switches and Impacted Network"))
这些想法是这样的:
我是否应该在两个独立的数据框中执行此操作,以首先计算最常发生的事件?并且,anthor数据框架可以计算受影响网络的数量?任何想法都表示赞赏。
答案 0 :(得分:3)
df[,Total:=sum(count),by=Switch][head(order(-Total),10)][ ... etc ... ]