1

我想创建一个和弦图来展示基于关键字的不同项目之间的关系。所以我有看起来像这样的数据(其中 A、B、C 代表关键字):

               A    B    C
Project  1     1    0    1 
Project  2     0    1    1 
Project  3     1    0    1

为了创建和弦图,我需要将数据转换为邻接矩阵或边列表。

我曾尝试在原始数据集上使用 igraph,但它需要一个邻接矩阵,我无法弄清楚如何转换数据。

邻接矩阵会是这样的:

    A  B  C
A   -  0  1
B   0  -  1
C   2  1  -  

边缘列表看起来像这样:

From  To
 A    C
 B    C
 A    C

数据有 60 个关键词。你会建议什么解决这个问题?谢谢你。

4

1 回答 1

0

dplyr使用and创建边缘列表的一种方法tidyr可能是:

df %>%
 mutate_all(~ replace(., . == 0, NA)) %>%
 rowid_to_column() %>%
 pivot_longer(names_to = "variables", values_to = "values", -rowid, values_drop_na = TRUE) %>%
 group_by(rowid) %>%
 mutate(variables2 = if_else(row_number() == 1, "From", "To")) %>%
 ungroup() %>%
 select(-values) %>%
 pivot_wider(names_from = "variables2", values_from = "variables") %>%
 select(-rowid)

  From  To   
  <chr> <chr>
1 A     C    
2 B     C    
3 A     C  
于 2019-10-22T18:58:38.840 回答