r - 如何解决 R 中 Sankey 的未定义列错误?

标签 r sankey-diagram htmlwidgets networkd3

我正在 R 中使用 networkD3 构建桑基图,但收到错误消息:

Error in `[.data.frame`(Links, , Source) : undefined columns selected

我的代码如下:

library(networkD3)
library(magrittr)

# Data Sources
file <- c("M://R//SankeyDataACT.csv")
links <- read.csv(file, sep =",", header = TRUE)
file <- c("M://R//SankeyNodes.csv")
nodes <- read.csv(file, sep =",", header = TRUE)
sankeyData <- list(nodes=nodes, links=links)

# Sankeydiagram
sankeyNetwork(Links = sankeyData$links, 
              Nodes = sankeyData$nodes, 
              Source = "Source",
              Target = "Target", 
              Value = "Value", 
              NodeID = "Name",
              units = "$", 
              fontSize = 12, 
              nodeWidth = 30)

当我运行上面的代码时,我收到错误消息。我不明白问题出在哪里。

请参阅下面我拥有的数据

来源:

links[,1]
 [1] 0 0 0 1 1 1 2 2 2 2 3 3 3 3 4 4 5 5 5 5 6 6 6 6 6

目标:

links[,2]
 [1]  7  8  9  7  8 10  7  9  8 10  9  7  8 10  7  8 10  8  7  9 11  8  7  9 10

值:

links[,3]
 [1]   4   8   6   6   2   4  12  12  23  12 148 260 285   3   2   1  67 117 177  34  28  67  20  21   1

节点:

nodes[,1]
 [1] ATT BHL CTL MEX MTL SSL TLS CEE SWE NWE MEA MF  OEM
Levels: ATT BHL CEE CTL MEA MEX MF MTL NWE OEM SSL SWE TLS

最佳答案

您在 sankeyNetwork 函数中设置的列名称(即 Source = "Source"、Target = "Target"、Value = "Value"、NodeID = "Name") 不在您的数据中。您可以在函数参数中设置正确的列名称,或者可以重命名数据中的列以匹配参数,如下所示...

names(sankeyData$nodes)[1] <- "Name"
names(sankeyData$links)[1:3] <- c("Source", "Target", "Value")

sankeyNetwork(Links = sankeyData$links, 
              Nodes = sankeyData$nodes, 
              Source = "Source",
              Target = "Target", 
              Value = "Value", 
              NodeID = "Name",
              units = "$", 
              fontSize = 12, 
              nodeWidth = 30)

关于r - 如何解决 R 中 Sankey 的未定义列错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54988079/

相关文章:

r - 如何在 htmlwidgets R 中使用 saveWidget 调整 HTML 小部件的大小?

javascript - 以交互方式向绘图 R 添加点,无需重绘背景图

r - 贝叶斯线性回归模型预测的置信区间

r - 使用 brew/whisker 进行错误安全模板

r - 根据dplyr中每列中的数据组合数据框

r - networkD3 Sankey Diagrams - 控制节点位置

c++ - R:指向c函数的指针

d3.js - 过滤 d3.js sankey 图的数据

javascript - 在 sankey d3 javascript 文件中嵌入 json

r - R 中的桑基图