首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将第一个变量值为空,并在R中生成in?

是否可以将第一个变量值为空,并在R中生成in?
EN

Stack Overflow用户
提问于 2021-05-06 04:06:39
回答 1查看 30关注 0票数 1

我有一个数据框架,希望在R中生成一个igraph plot,但是在第一列中,有些行没有值。正如您所看到的,NMSUKU中的第5-7行没有值。

代码语言:javascript
复制
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", "86_Priangan/ Sunda", 
"95_Banten", "86_Priangan/ Sunda"), Ethnicity = c("111_Betawi", 
"112_Cirebon", "113_Sunda", "114_Jawa", "114_Jawa", "114_Jawa", 
"114_Jawa", "116_Bawean/ Boyan", "119_Osing/ Using", "120_Tengger", 
"121_Madura", "113_Sunda", "123_Banten", "113_Sunda")), class = "data.frame", row.names = c(NA, 
-14L))

我想做的是:

正如您在屏幕截图Jawa上看到的,83,85和89必须连接到114_Jawa,而在最初并不是83、85和89。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-06 06:31:44

是的,这是可能的。您可以尝试下面的代码

代码语言:javascript
复制
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"
)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67411707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档