r - 从 igraph 中的边缘列表创建对象
问题描述
我是 igraph 的新手。我将它与 R 一起使用(我也是新手)。我想稍后使用 CINNA R 包,但我正在努力将我的网络加载到 igraph/从我的文件中创建一个 igraph 对象。到目前为止我已经尝试过:
-
```read.graph("file", format = "graphml") Error in read.graph.graphml(file, ...) : At rinterface.c:6077 : cannot open GraphML file, File operation error```
-
```read.graph("file", format="gml")```
--> 然后 R 崩溃。
-
```read.graph("file", format="edgelist") Error in read.graph.edgelist(file, ...) : At rinterface.c:5006 : cannot read edgelist, File operation error```
-
```graph_from_edgelist("file", directed=TRUE) Error in graph_from_edgelist("file", : graph_from_edgelist expects a matrix with two columns```
有人了解我的问题并知道如何解决吗?
解决方案
您需要将文件作为数据框导入,然后您可以使用数据框创建 igraph 对象:
这是igraph的一个例子:
library(igraph)
df <- data.frame(
A = c("Berlin", "Amsterdam", "New York") ,
B = c("Munich", "Utrecht", "Chicago"))
df.g <- graph.data.frame(d = df, directed = FALSE)
plot(df.g, vertex.label = V(df.g)$name)
有关更多解释,您可以查看:
要将文件作为数据框导入,您可以尝试以下操作:
links <- read.csv("Dataset1.csv", header=T, as.is=T)
# or read.table(file='Dataset1.csv')
head(links)
net <- graph_from_data_frame(d=links, vertices=nodes, directed=T)
plot(net)
另外,看看(第 3 部分)这里:
要从便于 igraph 的格式创建图形,您可以使用:
# possible formats : read_graph(file, format = c(“edgelist”, “pajek”, “ncol”, “lgl”, “graphml”, “dimacs”, “graphdb”, “gml”, “dl”), …)
graph1 <- read.graph(file='your_file_name.gml',format="gml")
class(graph1)
plot(graph1)