Я ожидаю, что igraph::count_multiple()
посчитает кратность ребер, что, похоже, отражает документация.Однако, это не всегда приводит к целым числам.
Пример:
library(igraph)
library(dplyr)
data("USairports", package = "igraphdata")
Ожидание: подсчет ребер при группировке по соответствующим вершинам ...
(
manualish_count <- USairports %>%
igraph::as_data_frame() %>%
add_count(from, to)
) %>%
select(from, to, n)
#> # A tibble: 23,473 x 3
#> from to n
#> <chr> <chr> <int>
#> 1 BGR JFK 2
#> 2 BGR JFK 2
#> 3 BOS EWR 10
#> 4 ANC JFK 1
#> 5 JFK ANC 1
#> 6 LAS LAX 20
#> 7 MIA JFK 10
#> 8 EWR ANC 1
#> 9 BJC MIA 1
#> 10 MIA BJC 1
#> # ... with 23,463 more rows
... приводит к целым числам;manualish_count$n
содержит <int>
egers.
Используя igraph
, на первый взгляд все выглядит хорошо ...
(ig_count <- count_multiple(USairports)) %>% head(10)
#> [1] 2 2 10 1 1 20 10 1 1 1
... но на самом деле есть дроби:
ig_count[ig_count %% 1 != 0]
#> [1] 0.5 0.5 0.5 0.5 0.5 0.5 0.5 1.5 1.5 1.5 1.5 0.5 1.5 1.5 0.5 0.5 0.5
#> [18] 0.5 1.5 1.5 1.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
#> [35] 0.5
Я неправильно понимаю цель count_multiple()
или неправильно ее использую?
igraph_version()
#> [1] "1.2.2"