看起来 source/target 不是零索引的 networkd3
it looks like source/target is not zero indexed networkd3
我正在尝试使用网络流量数据制作交互式网站流量图。
使用 networkd3 个包。
它只是一个 simpleNetwork
,但是一直给我这个警告并强制关闭 RStudio。
library(networkD3)
simpleNetwork(data.frame(BWT2012$Visitors, 1:189157, fontSize = 16, nodeColour = "blue", nodeClickColour = "red", textColour = "black", opacity = 0.6, zoom = T))
Warning Message: It looks like Source/Target is not zero-indexed. This
is required in Javascript and so your plot may not render.
我已经研究了几个小时,但似乎无法找到它是如何工作的。我知道 javascript 从 0 读取,r 从 1 读取。这就是它不起作用的原因。
任何人都很难帮助你,因为你没有提供可重现的例子,即我们不知道你的数据框BWT2012
是什么样的
您的代码中似乎有一个错误...无论 BWT2012
是什么样子,data.frame(BWT2012$Visitors, 1:189157, fontSize = 16, nodeColour = "blue", nodeClickColour = "red", textColour = "black", opacity = 0.6, zoom = T)
都不起作用,因为您将元素传递给 data.frame
不同长度的函数。我怀疑你的意思是 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:189157
作为它的第二个参数,即你打算将第一个 column/variable 等于 BWT2012$Visitors
和第二列等于 1:189157
[= 的数据框传递给 simpleNetwork()
函数28=]
假设上面的 #2 是正确的,你试图传递的数据框告诉 simpleNetwork
BWT2012$Visitors
中的值是每个 link,1:189157
中的值是每个link的目标。这似乎是一个不太可能发生的情况,所以我会确保你得到你认为你得到的东西。
您提到的警告只是一个警告...它不会停止 运行 的功能。在许多情况下(可能是自最近 networkd3 发生变化以来的所有情况),它仍会绘制图形,尽管结果可能出乎意料。例如...
Source <- c(1, 1, 2)
Target <- c(2, 3, 3)
NetworkData <- data.frame(Source, Target)
simpleNetwork(NetworkData)
使用#4 中的示例,如果您想重新编号源 ID 和目标 ID,以便它们从 0 开始索引并避免出现警告,您可以...
Source <- c(1, 1, 2)
Target <- c(2, 3, 3)
Source <- Source - 1
Target <- Target - 1
NetworkData <- data.frame(Source, Target)
simpleNetwork(NetworkData)
我正在尝试使用网络流量数据制作交互式网站流量图。
使用 networkd3 个包。
它只是一个 simpleNetwork
,但是一直给我这个警告并强制关闭 RStudio。
library(networkD3)
simpleNetwork(data.frame(BWT2012$Visitors, 1:189157, fontSize = 16, nodeColour = "blue", nodeClickColour = "red", textColour = "black", opacity = 0.6, zoom = T))
Warning Message: It looks like Source/Target is not zero-indexed. This is required in Javascript and so your plot may not render.
我已经研究了几个小时,但似乎无法找到它是如何工作的。我知道 javascript 从 0 读取,r 从 1 读取。这就是它不起作用的原因。
任何人都很难帮助你,因为你没有提供可重现的例子,即我们不知道你的数据框
BWT2012
是什么样的您的代码中似乎有一个错误...无论
BWT2012
是什么样子,data.frame(BWT2012$Visitors, 1:189157, fontSize = 16, nodeColour = "blue", nodeClickColour = "red", textColour = "black", opacity = 0.6, zoom = T)
都不起作用,因为您将元素传递给data.frame
不同长度的函数。我怀疑你的意思是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:189157
作为它的第二个参数,即你打算将第一个 column/variable 等于BWT2012$Visitors
和第二列等于1:189157
[= 的数据框传递给simpleNetwork()
函数28=]假设上面的 #2 是正确的,你试图传递的数据框告诉
simpleNetwork
BWT2012$Visitors
中的值是每个 link,1:189157
中的值是每个link的目标。这似乎是一个不太可能发生的情况,所以我会确保你得到你认为你得到的东西。您提到的警告只是一个警告...它不会停止 运行 的功能。在许多情况下(可能是自最近 networkd3 发生变化以来的所有情况),它仍会绘制图形,尽管结果可能出乎意料。例如...
Source <- c(1, 1, 2) Target <- c(2, 3, 3) NetworkData <- data.frame(Source, Target) simpleNetwork(NetworkData)
使用#4 中的示例,如果您想重新编号源 ID 和目标 ID,以便它们从 0 开始索引并避免出现警告,您可以...
Source <- c(1, 1, 2) Target <- c(2, 3, 3) Source <- Source - 1 Target <- Target - 1 NetworkData <- data.frame(Source, Target) simpleNetwork(NetworkData)