R:从数据帧自动创建图形

R: Automatically Creating Graphs from Dataframes

我正在使用 R 编程语言。

我有以下数据集(route_1):

 route_1

  id      long      lat
1  1 -74.56048 40.07051
3  3 -72.44129 41.71506
4  4 -77.53908 41.55434
2  2 -74.23018 40.12929
6  6 -78.68685 42.35981
5  5 -79.26506 43.22408

基于这些数据,我想制作一个有向网络图,其中每一行仅链接到紧随其后的行。使用“igraph”库,我能够手动执行此操作:

library(igraph)

my_data <- data.frame(

"node_a" = c("1", "3", "4", "2", "6"),
"node_b" = c("3", "4", "2", "6", "5")
)

graph <- graph.data.frame(my_data, directed=TRUE)
graph <- simplify(graph)

plot(graph)

我的问题:是否可以直接使用“route_1”数据集制作上述网络图,而无需手动创建包含信息的新数据集在哪个节点上连接到哪个节点?

谢谢!

数据集是否总是会被正确排序,所以绘图会从第 1->2->3 行等排成一行?如果是这样,我们可以通过简单地对 ID 列进行子集化来制作节点信息数据框。如果我们把这些步骤放在一个函数中,它就变成了一个简单的 1-liner:

plot_nodes <- function(x) {
    id = x$id
    a = id[1:length(id)-1]
    b = id[2:length(id)]
    graph.data.frame(data.frame(a,b), directed=TRUE)
}

graph <- plot_nodes(route_1)
plot(simplify(graph))