4

我正在创建一个 networkD3 forceNetwork(),但是在我在 RStudio 中清除了我的环境变量后,当我第二次运行代码时,网络不会显示在我的浏览器中。知道为什么吗?没有代码错误。Var输出如下。

library(networkD3)
library(igraph)
setwd("C:\\Users\\King\\Desktop\\SNA_Rcode")
csv<-read.csv("C:\\Users\\King\\Desktop\\Analysis\\mc_with_0_and_MI.csv")

df<-data.frame(csv$stat.deaths,csv[,4],csv$stat.mob)#damage delt on deaths, mob kills (is color)
#2 mode. interactive model
#g1 <- simpleNetwork(df) ; htmltools::html_print(g1, viewer = utils::browseURL)#DISPLAYS CORRECTLY
df <- df[!duplicated(df[,2]),]
df[,2] <- paste("", df[,2], sep="")
#setup
g <- graph.data.frame(df,directed=F)
links<-as.data.frame(get.edgelist(g)) #set name to number so calculate link correctly
links$V1<-as.numeric(as.character(links$V1))
links$V2<-as.numeric(as.character(links$V2))
colnames(links)<-c("source","target")
link_list<-(links-1)
#######################DOESNT WORK LIKE EXPECTED......replaces NA with 2 instead of 999
color_groups<-df[,3]# color based on mob kills
color_groups <- ifelse(as.numeric(color_groups) < 10, 1, 
                       ifelse(as.numeric(color_groups) >= 30, 3, 2))
color_groups[is.na(color_groups)]<-999 #replace NA with 999

names<-0:(length(color_groups)-1)
node_list <- data.frame(name=names, group=color_groups)

profanity<-forceNetwork(Links = link_list, Nodes = node_list,Source = "source", Target = "target", NodeID = "name",Group = "group", opacity = 0.8, colourScale = "d3.scale.category10()",charge=-100)
htmltools::html_print(profanity, viewer = utils::browseURL)

运行上述所有代码后(带有清晰的环境):

    > head(link_list,20)
       source target
    1       6   1169
    2       1    839
    3       1   2594
    4       7   5409
    5      11   2719
    6       5   1719
    7       7    179
    8       2   1989
    9       4   3444
    10      0   2249
    11      1   1964
    12      0   3344
    13      6   4479
    14      6   2224
    15      7   3869
    16      5   2459
    17      3   1704
    18     -1   2479
    19      5   3494
    20      4   1869

> head(node_list,20)
   name group
1     0     2
2     1     1
3     2     2
4     3     3
5     4     1
6     5     2
7     6     1
8     7     2
9     8     2
10    9     2
11   10     1
12   11     2
13   12     2
14   13     2
15   14     2
16   15     2
17   16     2
18   17     2
19   18     2
20   19     2
4

3 回答 3

4

我需要使用以下方法设置顶点的名称:

V(g)$name<-1:104

在我初始化图形(g)之后

于 2015-05-21T04:03:04.027 回答
0

我遇到了同样的问题,forceNetwork运行良好,没有问题,但在我的情况下发现了不同的原因 -
我的Links数据框已被过滤,其 ID不再连续。例如,一个 ID 列表0, 1, 2, 3, 10, 11, 12 将不起作用。肯定是0, 1, 2, 3, 4, 5, 6

于 2019-12-10T20:51:38.103 回答
0

您的link_list$sourceandlink_list$target向量似乎包含不在您的node_list, 例如-1and 2249...中的索引,或者这些向量中的值不是它们应该是的...

数据框中的sourcetarget向量Links必须是数字,并且它们的值是指Nodes它们所代表的数据框中节点的索引(零索引,与 R 不同,因为它被 JavaScript 代码使用)。

于 2018-04-06T09:52:32.630 回答