【发布时间】: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$ 划分时,似乎没有任何子列表。
我真的不知道从这里去哪里,因为我对这些对象没有足够的经验来弄清楚问题可能是什么(或者甚至由于方式的原因这实际上是否不可行我正在使用的功能有效)。任何帮助表示赞赏。
【问题讨论】: