R 删除“;“未使用”;sankey网络中的节点
我正在尝试建立一个sankey网络。 这是我的数据和代码:R 删除“;“未使用”;sankey网络中的节点,r,sankey-diagram,networkd3,R,Sankey Diagram,Networkd3,我正在尝试建立一个sankey网络。 这是我的数据和代码: library(networkD3) nodes <- data.frame(c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "D", "E", "N", "O", "P", "Q", "R")) names(nodes) <- "name" nodes$name = as.character(nodes$name) links <- data.fram
library(networkD3)
nodes <- data.frame(c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "D", "E", "N", "O", "P", "Q", "R"))
names(nodes) <- "name"
nodes$name = as.character(nodes$name)
links <- data.frame(matrix(
c(0, 2, 318.167,
0, 3, 73.85,
0, 4, 51.1262,
0, 5, 6.83333,
0, 6, 5.68571,
0, 7, 27.4167,
0, 8, 4.16667,
0, 9, 27.7381,
1, 10, 627.015,
1, 3, 884.428,
1, 4, 364.211,
1, 13, 12.33333,
1, 14, 9,
1, 15, 37.2833,
1, 16, 9.6,
1, 17, 30.5485), nrow=16, ncol=3, byrow = TRUE))
colnames(links) <- c("source", "target", "value")
links$source = as.integer(links$source)
links$target = as.integer(links$target)
links$value = as.numeric(links$value)
sankeyNetwork(Links = links, Nodes = nodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
fontSize = 12, fontFamily = 'Arial', nodeWidth = 20)
库(networkD3)
节点节点必须是唯一的,请参见下面的示例。我删除了重复的节点:“D”和“E”,然后在链接中,我删除了引用不存在的节点的链接。我们只有16个节点,以0:15为基数。在链接数据框中,最后两行引用16和17
或作为评论:
另一种说法是。。。节点数据框中的每个节点都将被打印,即使它与另一个节点具有相同的名称,因为索引在技术上是唯一的id
库(networkD3)
节点那么网络中的节点就没有办法清除了?@FlorianSeliger不知道你的意思。你能否澄清一下,预期的产量是多少?从我的示例中,我们可以看到附加的D和E被删除。问题是,在您的示例中,链接1-16和1-17缺失。我想显示我的数据中的所有链接,但要去掉显示时没有任何链接的节点(在我的示例D、E中,在您的示例N、O中)。@FlorianSeliger,因为我们没有节点16和17。然后从节点定义中删除“N”和“O”。@FlorianSeliger然后将链接数据中的最后两个链接更改为1->3和1->4,以便它们指向实际的D和E节点,而不是从节点数据框中删除的重复节点
nodes <- data.frame(c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "N", "O", "P", "Q", "R"))
library(networkD3)
nodes <- data.frame(name = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "N", "O", "P", "Q", "R"),
ix = 0:15)
links <- data.frame(matrix(
c(0, 2, 318.167,
0, 3, 73.85,
0, 4, 51.1262,
0, 5, 6.83333,
0, 6, 5.68571,
0, 7, 27.4167,
0, 8, 4.16667,
0, 9, 27.7381,
1, 10, 627.015,
1, 3, 884.428,
1, 4, 364.211,
1, 13, 12.33333,
1, 14, 9,
1, 15, 37.2833), nrow=14, ncol=3, byrow = TRUE))
colnames(links) <- c("source", "target", "value")
sankeyNetwork(Links = links, Nodes = nodes, Source = "source",
Target = "target", Value = "value", NodeID = "name",
fontSize = 12, fontFamily = 'Arial', nodeWidth = 20)