Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用d3Network软件包绘制网络图时为空页_R - Fatal编程技术网

使用d3Network软件包绘制网络图时为空页

使用d3Network软件包绘制网络图时为空页,r,R,我正在尝试使用d3Network包绘制网络图。我尝试组织数据以匹配(和帮助页面)上显示的说明,但仍然得到一个空白网页。谁能看出我做错了什么 library(d3Network) g.top3000 <- structure(list(from = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 5L), .Label = c("afghanistan", "attack", "people", "

我正在尝试使用
d3Network
包绘制网络图。我尝试组织数据以匹配(和帮助页面)上显示的说明,但仍然得到一个空白网页。谁能看出我做错了什么

library(d3Network)

g.top3000 <- structure(list(from = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 3L, 3L, 3L, 4L, 4L, 5L), .Label = c("afghanistan", "attack", 
"people", "pres_bush", "taliban"), class = "factor"), to = structure(c(4L, 
1L, 5L, 2L, 3L, 1L, 5L, 2L, 3L, 5L, 2L, 3L, 2L, 3L, 3L), .Label = c("people", 
"taliban", "united_states", "attack", "pres_bush"), class = "factor"), 
    weight = c(4, 3, 2, 6, 5, 5, 2, 3, 6, 1, 1, 5, 2, 4, 4)), .Names = c("from", 
"to", "weight"), row.names = c(NA, -15L), class = "data.frame")

top3000.nodes <- structure(list(name = structure(1:5, .Label = c("afghanistan", 
"attack", "people", "pres_bush", "taliban"), class = "factor"), 
    id = c(1, 1, 1, 2, 2)), .Names = c("name", "id"), row.names = c(NA, 
-5L), class = "data.frame")

d3ForceNetwork(Links = g.top3000, Nodes = top3000.nodes, Source = "from", Target = "to",
Value = "weight", NodeID = "name", Group = "id", width = 800, height = 400, opacity = 0.9,
   file = "projekt2_terror_news_force.html")
那是因为

  • 节点列表中没有“联合状态”条目
  • 您可能需要使用数字索引而不是节点名

  • #添加条目“联合状态”
    top3000.nodes
    
    d3SimpleNetwork(g.top3000, width = 800, height = 400, fontsize = 12, linkDistance = 200,
       file = "projekt2_terror_news.html")
    
    # add entry "united status"
    top3000.nodes <- rbind(top3000.nodes, data.frame(name = "united_states", id = 3))
    
    # from name to index
    g.top3000$from2 <- sapply(as.character(g.top3000$from), function(x) which(x == top3000.nodes$name))-1
    g.top3000$to2 <- sapply(as.character(g.top3000$to), function(x) {
        i <- which(x == top3000.nodes$name)
        if (length(i)) i else NA
        }) -1
    
    # use indices in "from2" and "to2"
    d3ForceNetwork(Links = g.top3000, Nodes = top3000.nodes, Source = "from2", Target = "to2",
    Value = "weight", NodeID = "name", Group = "id", width = 800, height = 400, opacity = 0.4,
       file = "projekt2_terror_news_force.html", linkDistance = 200)