2

由于交换机出现问题,我喜欢使用 igraph 来显示 Switch 和受影响的网络之间的关系。由于有很多事件,我想展示前 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

ETC

每次使用 swithc 发生事件时评估 1:

df$count<-c(1)

想出前 10 个最有问题的开关:

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"))

想法是这样的:

  1. 计算最多事件生成的开关
  2. 计算受影响网络的数量给 Switch 3.Igraph 结果。

我是否应该在两个单独的数据帧中执行此操作,以首先计算最事件生成的开关?并且,anth 数据框来计算受影响网络的数量?任何想法表示赞赏。

4

1 回答 1

3
df[,Total:=sum(count),by=Switch][head(order(-Total),10)][ ... etc ... ]
于 2012-10-26T16:13:29.283 回答