gpt4 book ai didi

r - 如何使用两个不同的条件对 data.table 执行两次聚合函数

转载 作者:行者123 更新时间:2023-12-04 05:26:57 26 4
gpt4 key购买 nike

由于交换机问题,我喜欢使用 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)

想出前 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 个最高事件?

一旦我确定了前 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"))

思路是这样的:
  • 计算最多事件生成的开关
  • 计算受影响网络的数量给 Switch
    3. 绘制结果。

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

    最佳答案

    df[,Total:=sum(count),by=Switch][head(order(-Total),10)][ ... etc ... ]

    关于r - 如何使用两个不同的条件对 data.table 执行两次聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090299/

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