2

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

スイッチでインシデントが発生するたびに 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 から、合計に基づいて上位 10 件のインシデントを取得するにはどうすればよいですか?

上位 10 個のスイッチを特定したら、上位にある問題のあるスイッチの ImpactedNetwork の集計数が必要です。

t<-aggregate(count~ImpactedNetwork+Switch, df, sum)

t

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 に提供します。

これを 2 つの別々のデータ フレームで実行して、最も多く発生したスイッチを最初に計算する必要がありますか? そして、影響を受けるネットワークの数を計算するための Antho データ フレームは? どんなアイデアでも大歓迎です。

4

1 に答える 1

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