如何解决SANR中Sankey的未定义列错误?
我正在R中使用如何解决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
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)