【问题标题】:Igraph: create dataset of triad census for ego networksIgraph:为自我网络创建三合会人口普查数据集
【发布时间】:2021-09-30 05:38:19
【问题描述】:

我有一个友谊提名数据集。我试图首先获取每个人的自我网络,然后将三合会人口普查中每种三合会的数量作为自我的变量。以下是到目前为止的一些示例数据和代码:

有数据:

df<-read.table(text="student_id alter
 1     3
 2     5
 2     2
 2     3
 3     2
 3     4
 3     5
 4     1
 4     6
 4     3
 5     1
 5     6
 5     2
 6     5
 6     2
 6     1
 7     8
 8     9
 9     8
 9     7
10     7
10     9
11    19
11    15
11    12
12    20
12    19
12    11
13    15
13    19
13    11
14    16
14    12
14    18
15    17
15    20
15    17
16    14
16    19
16    20
16    13
17    20
17    18
17    13
17    14
18    13
18    19
18    17
19    17
19    16
19    11
20    13
20    17
20    11
20    1", header = TRUE)

想要数据:

student_id  triad_003   triad_012   triad_102   triad_021D  triad_021U  triad_021C triad_111D   triad_111U  triad_030T  triad_030C  triad_201   triad_120D  triad_120U  triad_120C  triad_210   triad_300
        1           2           2           2           0           4           2           2           2           1           1           0           0           1           1           0           0
        2           0           0           0           0           0           0           2           0           0           0           0           0           0           0           2           0
        3           0           1           1           0           1           0           1           2           0           1           1           0           0           1           1           0
        4           0           0           0           0           0           1           0           1           1           0           0           0           0           1           0           0
        5           0           0           0           1           0           1           3           1           0           1           0           0           1           0           2           0
        6           0           1           1           1           1           1           1           1           1           0           0           0           1           0           1           0
        7           0           0           0           0           0           1           1           0           1           0           0           0           0           1           0           0
        8           0           0           0           0           0           0           0           0           0           0           0           0           0           1           0           0
        9           0           0           0           0           0           1           1           0           1           0           0           0           0           1           0           0
        10          0           0           0           0           0           0           0           0           1           0           0           0           0           0           0           0
        11          0           3           0           2           2           2           2           2           2           2           0           1           0           1           1           0
        12          1           1           1           1           0           2           2           0           0           0           0           0           0           1           1           0
        13          3           8           4           1           5           8           6           5           4           4           2           2           2           2           0           0
        14          2           0           2           1           0           1           1           2           0           0           0           0           0           1           0           0
        15          0           0           0           0           0           2           0           1           2           3           0           1           1           0           0           0
        16          1           2           0           0           0           1           0           3           1           0           1           0           0           1           0           0
        17          2           10          0           2           2           6           2           1           1           3           1           1           2           2           0           0
        18          0           1           0           1           0           3           0           0           1           1           0           0           1           2           0           0
        19          4           3           6           0           4           4           4           2           1           1           1           1           1           2           1           0
        20          11          9           6           2           4           9           3           3           3           3           0           1           1           1           0           0

到目前为止,我已在下面完成此操作,这为每个三元组提供了计数。但是我很难找到上面想要的数据集:

egonet_list <- graph_from_data_frame(df, directed = TRUE) %>%
               make_ego_graph(., order = 1, mode = "out") 

triads <- lapply(egonet_list, triad.census)

【问题讨论】:

    标签: r dplyr tidyverse apply igraph


    【解决方案1】:

    这并不优雅,但似乎有效!

    g <- graph_from_data_frame(df, directed = TRUE) 
    egonet_list <- make_ego_graph(g)
    
    
    triads <- lapply(egonet_list, triad_census_full) %>% as.data.frame() %>%
            `colnames<-`(names(V(g))) %>% t() %>% as.data.frame()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      • 2023-03-18
      • 2015-04-13
      • 1970-01-01
      • 2021-08-31
      相关资源
      最近更新 更多