0

我想进行网络分析,但完全不知道如何正确构建我的数据,因为大多数示例已经在toandfrom级别构建了数据。

我的数据示例如下:

df <- data.frame(Name = c("Alice", "Ben", "Tom", "Jane", "Neil", "Alice", "Tom", "Ben", "Jane", "Neil", "Alice", "Tom", "Ben", "Jane", "Bob"),
         Location = c("Ward", "Desk", "Op", "Call", "Off",
                      "Ward", "Desk", "Op", "Call", "Off",
                      "Ward", "Desk", "Op", "Call", "Off"),
         Rating = c(1, 1, 1, 1, 1, 10, 10, 10, 10, 10, 8, 8, 8, 8, 8))

我现在希望tofrom每个Name. Rating您还会注意到,Location在不同的评级期间,人们可能处于不同的状态,尽管我更愿意为此结合Name成为节点和Rating边缘。

我看过library(iterpc)但很难理解整个组合的东西,有五种不同的阵容。

我的问题有潜在的dplyr解决方案吗?谢谢!

编辑:看起来我的问题与非常相似,但标记的答案对我不起作用,而是我得到Error: Column name Name must not be duplicated.

4

1 回答 1

1

如果您希望该from列成为您的列,Name并且该to列成为您的Rating列,那么 tidygraph 会为您完成此映射。

library(tidygraph)
#> Warning: package 'tidygraph' was built under R version 3.6.3
#> 
#> Attaching package: 'tidygraph'
#> The following object is masked from 'package:stats':
#> 
#>     filter

df <- data.frame(
  Name = c(
    "Alice", "Ben", "Tom", "Jane", "Neil",
    "Alice", "Tom", "Ben", "Jane", "Neil",
    "Alice", "Tom", "Ben", "Jane", "Bob"
  ),
  Location = c(
    "Ward", "Desk", "Op", "Call", "Off",
    "Ward", "Desk", "Op", "Call", "Off",
    "Ward", "Desk", "Op", "Call", "Off"
  ),
  Rating = c(
    1, 1, 1, 1, 1,
    10, 10, 10, 10, 10,
    8, 8, 8, 8, 8)
)

tg <- as_tbl_graph(df)
tg
#> # A tbl_graph: 11 nodes and 15 edges
#> #
#> # A directed acyclic multigraph with 4 components
#> #
#> # Node Data: 11 x 1 (active)
#>   name 
#>   <chr>
#> 1 Alice
#> 2 Ben  
#> 3 Tom  
#> 4 Jane 
#> 5 Neil 
#> 6 Bob  
#> # ... with 5 more rows
#> #
#> # Edge Data: 15 x 3
#>    from    to Rating
#>   <int> <int>  <dbl>
#> 1     1     7      1
#> 2     2     8      1
#> 3     3     9      1
#> # ... with 12 more rows

您可以通过查看边缘表的第一行并查看 和 之间的边缘来仔细检查此映射是否正确,它们是1和,它是原始数据框中的第一行。7AliceWard

data.frame(tg)
#>     name
#> 1  Alice
#> 2    Ben
#> 3    Tom
#> 4   Jane
#> 5   Neil
#> 6    Bob
#> 7   Ward
#> 8   Desk
#> 9     Op
#> 10  Call
#> 11   Off

reprex 包(v0.3.0)于 2020 年 9 月 21 日创建

于 2020-09-21T23:51:22.177 回答