【问题标题】:Get.Edgelist from R matrix when rownames and column names don't match行名和列名不匹配时从 R 矩阵获取.Edgelist
【发布时间】:2017-04-06 00:55:47
【问题描述】:

我有一个看起来像这样的数据框。

                  Abdominal pain Chest pain Flu-like Liver Damage Nausea Numbness Swelling
       Avandaia                  1          0        0            1      1        1        1
       Warfrin                   0          1        1            0      1        1        1
       Flu-like                  0          0        0            0      0        0        0
       Liver Damage              0          0        0            0      0        0        0
       Nausea                    0          0        0            0      0        0        0
       Numbness                  0          0        0            0      0        0        0
       Swelling                  0          0        0            0      0        0        0

我想得到这样的边缘列表:

Abdominal Pain | Avandaia
Chest Pain     | Warfrin
Flu-Like       | Warfrin
Liver Damage   | Avandaia
Nausea         | Avanadia
Nausea         | Warfrin
....
....

我之前使用 R 的 igraph 包来获取带有邻接矩阵的 get.edgelist,但我相信在这种情况下,行名和列名必须匹配。我如何使用这样的数据框来做到这一点,其中有不同的行名和列名?

谢谢!

【问题讨论】:

    标签: r matrix graph igraph adjacency-list


    【解决方案1】:

    一些不使用igraph的解决方案

    df <- read.csv(text="Drug,Abdominal pain,Chest pain,Flu-like,Liver Damage,Nausea,Numbness,Swelling
    Avandaia,1,0,0,1,1,1,1
    Warfrin,0,1,1,0,1,1,1
    Flu-like,0,0,0,0,0,0,0
    Liver Damage,0,0,0,0,0,0,0
    Nausea,0,0,0,0,0,0,0
    Numbness,0,0,0,0,0,0,0
    Swelling,0,0,0,0,0,0,0
    ", check.names=FALSE)
    
    
    library(tidyr)
    gather_(df, "Symptom", "Count", setdiff(names(df),"Drug")) %>% 
        filter(Count > 0)
    
    library(data.table)
    setDT(df)
    melt.data.table(df, measure.vars=setdiff(names(df),"Drug"))[value>0]
    

    【讨论】:

      猜你喜欢
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多