2017-02-26 7 views
0

ウェブトラフィックデータを使用してインタラクティブなウェブサイトのトラフィック図を作成しようとしています。ソース/ターゲットがゼロインデックスされていないようですnetworkd3

networkD3パッケージを使用しています。

これは単なる単純なネットワークですが、私にこの警告を与え続け、強制的にR Studioを閉じます。

library(networkD3) 
simpleNetwork(data.frame(BWT2012$Visitors, 1:189157, fontSize = 16, nodeColour = "blue", nodeClickColour = "red", textColour = "black", opacity = 0.6, zoom = T)) 

警告メッセージ:ソース/ターゲットはゼロ索引付けされていないように見えます。この はJavascriptで必要となり、プロットがレンダリングされないことがあります。

私は何時間も研究していますが、これがどのように機能するのかわかりません。私はjavascriptが0からrと1からrを読み取ることを理解しています。それがうまくいかない理由です。

答えて

3
  1. 誰かがあなたを助けるためにするために、それはあなたが再現可能な例を提供していないので、つまり私たちはあなたのデータフレームBWT2012

  2. どのように見えるか見当がつかないにバグがあるように思われることは非常に困難ですあなたのコード... data.frame(BWT2012$Visitors, 1:189157, fontSize = 16, nodeColour = "blue", nodeClickColour = "red", textColour = "black", opacity = 0.6, zoom = T)は、異なる長さのdata.frame関数に要素を渡しているため、BWT2012がどのようなものであっても機能しません。私はそれがsimpleNetwork(data.frame(BWT2012$Visitors, 1:189157), fontSize = 16, nodeColour = "blue", nodeClickColour = "red", textColour = "black", opacity = 0.6, zoom = T)であると思っていますが、simpleNetwork()関数の最初の引数は、data.frame()の最初の引数にBWT2012$Visitors、もう1つの引数には1:189157です。つまり、simpleNetwork()関数には、最初の列/ BWT2012$Visitorsに等しい変数と、あなたが通過しようとしているデータフレームがBWT2012$Visitorsの値は、各リンクの源であるsimpleNetworkを伝える正しいされ、上記第2位を仮定1:189157

  3. に等しい第2の列、および1:189157の値が各リンクのターゲットになります。それは非常に起こりそうなシナリオのように思われるので、私はあなたがあなたが得ると思っているものを得ていることを確認します。

  4. あなたが言及した警告は単なる警告であり、機能が停止することはありません。多くの場合(おそらく、最近のネットワークD3の変更以来)、結果は予期しないものの、グラフをプロットします。例えば#4からの例を使用して...

    Source <- c(1, 1, 2) 
    Target <- c(2, 3, 3) 
    NetworkData <- data.frame(Source, Target) 
    simpleNetwork(NetworkData) 
    
  5. 、あなたは彼らが0 - インデックス付きだったように、ソースとターゲットのID番号を付け直すと警告を回避したい場合、あなたは...

    を行うことができます
    Source <- c(1, 1, 2) 
    Target <- c(2, 3, 3) 
    Source <- Source - 1 
    Target <- Target - 1 
    NetworkData <- data.frame(Source, Target) 
    simpleNetwork(NetworkData) 
    
+0

こんにちは、ありがとうございます。私が扱っているファイルは非常に大きく(大量の189157行)。このファイルをあなたにアップロードまたは表示するにはどうしたらいいですか? –

+0

'ライブラリ(networkD3) ソース< - C(1、1、2) ターゲット< - C(2、3、3) ソース< - ソース - 1 ターゲット< - ターゲット - 1 NetworkData < - データ。 frameSize = 16、nodeColour = "blue"、nodeClickColour = "red"、textColour = "black"、opacity(source、Target) simpleNetwork(NetworkData) simpleNetwork(data.frame(BWT2012 $ Visitors、1:189157) = 0.6、zoom = T) '私は運が無ければこれを試しました。最初にRを使って作業する –

+0

大規模なデータセットを小さなものに縮小することはできますが、問題を実証するのと同じ効果があります。問題を見るにはBWT2012の最初の5行だけで十分でしょうおよび/またはそれを複製する。最後に追加した行を除いて、上に貼り付けたコードは間違いなく機能します。また、苦労する前に私はあなたに伝えることができます... networkD3と200,000のリンクをプロットしようとするとうまくいかないでしょう...それは単に多くのリンクを処理するようには設計されていません。 –

関連する問題