#r #sankey-diagram #htmlwidgets #networkd3
#r #sankey-диаграмма #htmlwidgets #networkd3
Вопрос:
Я строю диаграмму sankey, используя networkD3
в R, но я получаю сообщение об ошибке:
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
Комментарии:
1. Можем ли мы иметь
head
ofsankeyData
?
Ответ №1:
Имена столбцов, которые вы задаете в 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)