R 从文件中读取边。我无法定义图表

R 从文件中读取边。我无法定义图表,r,igraph,R,Igraph,我是R的新手。我在igraph图书馆工作。我是新使用这种图书馆的 我有一个问题: 我有一个文本文件中的边列表。它有两列。第一个有初始节点,第二个有结束节点 我正在阅读该文件: g1 <-read.table ("g1.txt") 当我尝试使用刚加载的边定义图形时,我得到: Error in graph(g1) : (list) object cannot be coerced to type 'double' 如何从文件的边缘定义图形以避免上述错误?正如@Sacha Epskamp所建

我是R的新手。我在igraph图书馆工作。我是新使用这种图书馆的

我有一个问题:

我有一个文本文件中的边列表。它有两列。第一个有初始节点,第二个有结束节点

我正在阅读该文件:

g1 <-read.table ("g1.txt")
当我尝试使用刚加载的边定义图形时,我得到:

Error in graph(g1) : (list) object cannot be coerced to type 'double'

如何从文件的边缘定义图形以避免上述错误?

正如@Sacha Epskamp所建议的,As.matrix可能会通过转置来解决这个问题

下面将重新创建错误消息,然后使用相同的数据生成图形

> library(igraph)
> g1 <- data.frame( V1 = c(0,0,0,0), V2 = c(2,3,4,5) )
> g1
  V1 V2
1  0  2
2  0  3
3  0  4
4  0  5
>
> graph(g1)
Error in graph(g1) : (list) object cannot be coerced to type 'double'
> 
> g2 <- t(as.matrix(g1))
> g2
   [,1] [,2] [,3] [,4]
V1    0    0    0    0
V2    2    3    4    5
>
> graph(g2)
Vertices: 6 
Edges: 4 
Directed: TRUE 
Edges:

[0] 0 -> 2
[1] 0 -> 3
[2] 0 -> 4
[3] 0 -> 5

正如@Sacha-Epskamp所建议的,As.matrix可能会通过转座来解决这个问题

下面将重新创建错误消息,然后使用相同的数据生成图形

> library(igraph)
> g1 <- data.frame( V1 = c(0,0,0,0), V2 = c(2,3,4,5) )
> g1
  V1 V2
1  0  2
2  0  3
3  0  4
4  0  5
>
> graph(g1)
Error in graph(g1) : (list) object cannot be coerced to type 'double'
> 
> g2 <- t(as.matrix(g1))
> g2
   [,1] [,2] [,3] [,4]
V1    0    0    0    0
V2    2    3    4    5
>
> graph(g2)
Vertices: 6 
Edges: 4 
Directed: TRUE 
Edges:

[0] 0 -> 2
[1] 0 -> 3
[2] 0 -> 4
[3] 0 -> 5

如果您能提供文本文件的小样本,将有助于我们回答您的问题。如果文件很小,可以尝试使用dput。ls.str的第一个参数是:pos=-1。我怀疑它试图强迫你的列表变成一个双精度的,以进入pos参数。不可能是你想要的!也许当对象上的.matrix工作时?如果您能提供文本文件的小样本,它将帮助我们回答您的问题。如果文件很小,可以尝试使用dput。ls.str的第一个参数是:pos=-1。我怀疑它试图强迫你的列表变成一个双精度的,以进入pos参数。不可能是你想要的!也许当对象上的.matrix起作用时?谢谢,无论是在重新创建错误还是建议解决方案时,您的答案都非常清楚。你解决了我的问题。谢谢,你的答案是如此清晰,无论是在你重新创建错误还是建议解决方案时。你解决了我的问题。