2016-06-14 8 views
2

저는 R에 익숙하지 않고 샘플 데이터를 사용하여 rCharts를 사용하여 Sankey 다이어그램을 만들려고합니다.R의 Sankey Diagram에 어떤 종류의 데이터를 입력합니까?

나는 this code을 실행했으며 의도 한대로 작동합니다. 그러나 원본, 대상 및 값 벡터로 해당 코드를 편집하면 R이 충돌하고 다이어그램이 생성되지 않습니다.

: 여기가 내 데이터를 사용하여 생산 한 작은 예입니다, 명확성을 위해

target <- c('1', '1', '1', '1', '2', '2', '2', '3', '3', '3', '4', '4', '4', '4', '4', '5', '5', '5', '5') 

source <- c('2', '3', '4', '5', '1', '3', '4', '2', '3', '4', '1', '2', '3', '4', '5', '1', '2', '4', '5') 

value <- c(1, 2, 2, 1, 1, 1, 4, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 2, 2) 

: 여기

내가 위의 예제의 소스, 목표와 가치 대신에 입력을 시도하고있는 무슨이다
source <- c('2', '5', '5') 
target <- c('4', '2', '5') 
value <- c(1, 1, 1) 

이 또한 충돌합니다. Sankey Diagrams에 대한 나의 이해는 '2'가 '4'로 흐르고 '5'는 동일한 두께의 선으로 '2'와 '5'로 흐르는 차트를 만들어야한다는 것입니다.

내가 본 다른 예제와 같은 서식을 갖고 있기 때문에 데이터 자체에 문제가 있다고 가정합니다. 아무도 내 이해가 잘못되었다는 것을 설명 할 수 있다면, 그것은 대단히 감사하겠습니다!

답변

1

이 또한 충돌합니다.

자체 루프 5에서 5로 인해 충돌이 발생하는데 이는 의미가 없습니다. 이름이 5 인 노드는 소스 또는 대상 측에 있어야합니다.

는 생키 다이어그램에 대한 이해는 '2', '4'로 흐르고, '5', '2' 와 동일한 두께의 라인 '5'에 흐르는 곳 차트를 생성해야한다는 것이다.

You could do e.g. 

source <- c('2', '2', '5') 
target <- c('4', '5 ', '5 ') 
value <- c(1, 1, 1) 
df <- cbind.data.frame(source, target, value) 
library(rCharts) 
sankeyPlot <- rCharts$new() 
sankeyPlot$setLib('http://timelyportfolio.github.io/rCharts_d3_sankey') 
sankeyPlot$set(
    data = df, 
    nodeWidth = 10, 
    nodePadding = 15, 
    width = 300, 
    height = 300 
) 
sankeyPlot 

공지 사항 소스 5와 대상 벡터에서 5 사이의 작은 차이 ...

+0

감사합니다! 어제 내 실수를 깨달았습니다. 대상 벡터의 변수 이름을 변경하여 문제를 해결할 수 있었지만 버전이 더 좋습니다. –