如何解决SANR中Sankey的未定义列错误?

如何解决SANR中Sankey的未定义列错误?,r,sankey-diagram,htmlwidgets,networkd3,R,Sankey Diagram,Htmlwidgets,Networkd3,我正在R中使用networkD3构建sankey图,但收到一条错误消息: 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 =",", h

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

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[,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)

names(sankeyData$nodes)[1]我们能拥有
sankeyData
头吗?
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)