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

发布于 2024-11-18 10:43:41 字数 500 浏览 1 评论 0原文

我是 R 新手。我正在使用 igraph 库。我是新使用这样的库。

我有一个问题:

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

我正在读取文件:

g1 <-read.table ("g1.txt")

读取成功。

使用 ls.str(g1) 我得到:

V1 :  int [1:995] 0 0 0 0 0 0 0 0 0 0 ...
V2 :  int [1:995] 2 3 4 5 6 7 8 9 10 11 ...

当我尝试使用刚刚加载的边缘定义图形时,我得到:

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

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

I am new in R. I am working with igraph library. I am new using such library.

I have a problem:

I have a list of edges in a text file. It has two columns. The first has initial node, the second has the ending node.

I am reading the file with:

g1 <-read.table ("g1.txt")

The reading is successfull.

with ls.str(g1) i get:

V1 :  int [1:995] 0 0 0 0 0 0 0 0 0 0 ...
V2 :  int [1:995] 2 3 4 5 6 7 8 9 10 11 ...

when i try to define the graph with the just loaded edges I get:

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

How i could to define the graph from file's edges avoiding the above error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

听,心雨的声音 2024-11-25 10:43:41

正如 @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

As @Sacha Epskamp suggested, as.matrix may sort this out, possibly with a transpose.

The following recreates your error message and then produces a graph from the same data

> 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文