【问题标题】:Converting a list of igraph.vs objects into a data frame (from all_simple_paths)将 igraph.vs 对象列表转换为数据框(来自 all_simple_paths)
【发布时间】:2020-04-03 22:28:54
【问题描述】:

所以,这是一个与此处提出的问题非常相似的问题:Turning an igraph.vs into a data frame 但是,我在将这个问题的解决方案应用于我自己的情况时遇到了问题。

与该问题中的个人类似,我使用 R igraph 函数 all_simple_paths() 创建了一个 igraph.vs 对象列表。

然后我以以下方式在此列表中添加了更多路径,这增加了复杂性:

for (i in 1:length(starts)){

  smple_path_n = all_simple_paths(info_igraph,
                                starts,
                                to = end)

  all_paths = c(all_paths, smple_path_n)

}

因此,我将这些列表合并为一个整体更大的列表。此对象列表如下所示:

[[1]]
+ 3/? vertices, named, from 31c3f54 (deleted):
[1] hsa:1147 hsa:4790 hsa:6348

[[2]]
+ 3/? vertices, named, from d0aa080 (deleted):
[1] hsa:1147 hsa:4790 hsa:6348

[[3]]
+ 3/? vertices, named, from 60b5da5 (deleted):
[1] hsa:1326 hsa:4790 hsa:6348

我现在遇到的问题是我想将这些对象转换为如下所示的数据框或矩阵:

         hsa:1147 hsa:1326 hsa:4790 hsa:6348                
Pathway1    1    0    1    1
Pathway2    1    0    1    1 
Pathway3    0    1    1    1

所有这些都与此处开头链接的问题非常相似,但无论出于何种原因,all_simple_paths() 函数的输出似乎与all_shortest_paths() 函数的行为方式不同。因此,问题中提出的解决方案似乎对我不起作用。

在原始列表(或组合的整体列表)上使用 as_ids 时,我收到以下错误:

Error in UseMethod("as_ids") : 
no applicable method for 'as_ids' applied to an object of class "list"

类似地,该列表似乎没有任何“列”,因为在尝试将其与 all_paths$ 划分时,似乎没有任何子列表。

我真的不知道从这里去哪里,因为我对这些对象没有足够的经验来弄清楚问题可能是什么(或者甚至由于方式的原因这实际上是否不可行我正在使用的功能有效)。任何帮助表示赞赏。

【问题讨论】:

    标签: r dataframe igraph


    【解决方案1】:

    供将来参考,以防其他人确实调查了与此类似的问题:

    我的问题是您不能将as_ids 函数应用于任何一组简单路径,并且一次只能应用于一个。事后看来,这似乎很明显,但有点令人沮丧,因为这意味着它不能直接应用于 igraph.vs 对象列表,而这正是 all_simple_paths() 函数返回的内容。

    我的解决方案感觉相当不优雅,使用 for 循环,但似乎有效:

    dir_paths_part = list()
    
    for (nsmples in 1:length(smple_path_n)){
    
      curr_smple = as_ids(smple_path_n[[nsmples]])
    
      dir_paths_part[[nsmples]] = curr_smple
    
    }
    

    基本上我需要将as_ids 函数单独应用于列表的每个元素,然后将它们放回新列表中。

    【讨论】:

      猜你喜欢
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      相关资源
      最近更新 更多