创建的igraph我有一个类似的问题这一个:Reading adjacency lists with isolated nodes using igraph与孤立节点
我想绘制节点,其中一些没有关系。但由于某些原因在上面的线程中提到的解决方案是行不通的
我的数据
data <- data.frame(ID = c(143918,176206,210749,219170,247818,314764,321459,335945,339637,700689,712607,712946,735907,735907,735907,735907,735907,735907,735908,735908,735908,735908,735908,735908,735910,735911,735912,735913,746929,746929,747540,755003,767168,775558,776656,794173,794175,807493), relation = c(111098,210749,176206,NA,NA,NA,NA,NA,NA,807493,NA,NA,735908,735910,735911,735912,735913,767168,735907,735910,735911,735912,735913,767168,NA,NA,NA,NA,NA,100723,NA,NA,NA,776656,775558,NA,NA,700689))
这将导致一个阴谋也表明孤立节点:
v<-unique(data[,1])
e <- na.omit(data)
g<-graph.data.frame(e, vertices = v, directed = T)
plot(g)
出于某种原因,我得到错误:“边缘列表中的一些顶点名称未列在顶点数据框中”。
我希望有人能告诉我我做错了什么,以及如何解决这个问题。谢谢
编辑: paqmo回答我的问题,谢谢!
但是我的任务需要不同的方法。在关系中但在第一行中缺失的ID是处于不同位置的人员。那些应该被忽略,同时保持每一个孤立的人从第一排。我现在的解决方案使用data.table:
v <- unique(c(data[,1]))
v <- as.data.frame(v)
e <- data
setDT(v);setDT(e)
setkey(v)
setkey(e, relation)
e <- e[v]
e <- na.omit(e)
g<-graph.data.frame(e, vertices = v, directed = T)
plot(g)
任何建议,以更好/更有效的解决方案将受到欢迎。
我会尽量避免问另一个问题在这,所以:如何你下面的代码应用于2个data.frames(一EdgeList都与节点列表分开存放的数据应该与合并数据v < - na.omit(v)e < - 数据的唯一性(c(data [,1],data [,2])) na.omit(数据)'? –