如何解决是否可以清空第一个变量值并在 R 中制作 igraph?
我有一个数据框想要在 R 中创建一个 igraph plot
。但是在第一列中,有些行没有值。如您所见,NMSUKU 中的第 5-7 行没有值。
dput(sample)
structure(list(NMSUKU = c("Betawi","Cirebon","Sunda","Jawa","","Bawean/ Boyan","Osing/ Using","Tengger","Madura","Badui/ Baduy","Banten","Banten"),TopLang = c("82_Batavi/ Batawi/ Betawi/ Melayu Betawi/ Melayu Jakarta/ Melayu Jakarte","84_Cirebon","86_Priangan/ Sunda","88_Jawa","83","85","89","3000_Bahasa lainnya di Jawa","90_Banyuwangi/ Osing","93_Tengger","91_Basa Mathura/ Madhura/ Madura/ Madure","95_Banten","86_Priangan/ Sunda"),Ethnicity = c("111_Betawi","112_Cirebon","113_Sunda","114_Jawa","116_Bawean/ Boyan","119_Osing/ Using","120_Tengger","121_Madura","123_Banten","113_Sunda")),class = "data.frame",row.names = c(NA,-14L))
正如您在屏幕截图中看到的,Jawa、83,85 和 89 必须连接到 114_Jawa,而首先对于 83、85 和89。 谢谢!
解决方法
是的,这是可能的。你可以试试下面的代码
m <- as.matrix(replace(sample,sample == "","NA"))
g <- simplify(graph_from_edgelist(rbind(m[,1:2],m[,2:3]),directed = TRUE))
l <- layout_with_sugiyama(g)
idx <- which(names(V(g)) == "NA")
l$layout <- l$layout[-idx,]
g <- delete.vertices(g,"NA")
plot(g,layout = -l$layout[,2:1],edge.arrow.size = 0.1,vertex.size = 2.5,vertex.color = "grey",vertex.label.dist = 1,edge.arrow.width = 1.5,edge.width = seq(0.5,0.08),edge.lty = "solid",edge.color = "gray",vertex.label.cex = 0.7,is.rm = TRUE,vertex.label.color = "black"
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。