2017-02-16 31 views
2

我试图创建一个使用多种封装和方法的网络地图。网络地图错误:每个变量必须是一维原子向量或列表

以此为指导,我已经复制并粘贴每一步

http://minimaxir.com/notebooks/interactive-network/

然而,当我尝试查看绘制它与此错误出现:

错误:每个变量都必须是一个1d原子向量或列表。 问题变量:'x','y','xend','yend'

显然这个错误并没有出现在这个例子中,它对创建者来说工作正常,但它也发生在我尝试使用我的拥有数据。

目前没有任何有用的答案,这样 ggnet2 : Error: Each variable must be a 1d atomic vector or list

任何想法的问题可能是什么?

我有一种感觉,它可能做的出发地和目的地的变量是文字,但我不知道他们是否可以转换为数字,我不会真的想他们作为数字,因为我想的要显示的来源和目的地的名称。

library(dplyr) 
library(nycflights13) 
library(igraph) 
library(sna) 
library(ggnetwork) 

df_edges <- flights %>% group_by(origin, dest) %>% summarize(weight = n()) 
net <- graph.data.frame(df_edges, directed = T) 
V(net)$degree <- centralization.degree(net)$res 
df_net <- ggnetwork(net, layout = "fruchtermanreingold", weights = "weight", niter = 5000) 
ggplot(df_net, aes(x = x, y = y, xend = xend, yend = yend)) + geom_edges(size = 0.4, alpha = 0.25) + geom_nodes(aes(size = degree, text = vertex.names)) + ggtitle("Network Graph of U.S. Flights Outbound from NYC in 2013") + theme_blank() 
+1

欢迎使用Stackoverflow!你能发布一个可以重现错误的最小例子吗? –

+0

库(dplyr) 库(nycflights13) 库(的igraph) 库(SNA) 库(ggnetwork) df_edges <- flights %>%GROUP_BY(产地,目标寄存器)%>%总结(重量= N()) 净< - graph.data.frame(df_edges,定向= T) V(净值)$度< - centralization.degree(净值)$ RES df_net < - ggnetwork(净,布局= “fruchtermanreingold”,权重= “权重”,硝石= 5000) ggplot(df_net,AES(X = X,Y = Y,xend的= xend的,YEND = YEND))+ geom_edges(大小= 0.4,α-= 0.25)+ geom_nodes(AES(大小=度,文本= vertex.names))+ ggtitle(“2013年从纽约出境的美国航班网络图表”)+ theme_blank() – MLMM

+0

谢谢!我将你的代码添加到了问题中。它对我没有任何问题。 https://i.stack.imgur.com/GW5St.jpg –

回答

0

我最近有使用ggnet和ggnetwork的相同问题。目前的解决方法是导出由gwiretwork生成的数据并再次导入它(我是一个简单的人):

library(readr) 
write_csv(df_net,"dat.csv") 
df_net <- read_csv("dat.csv")