2017-03-07 79 views
0

我試圖在R的基礎上實現可摺疊網絡more network layouts。但是,我總是得到Object not found的錯誤。R的可摺疊網絡圖

devtools::install_github 
devtools::install_github("timelyportfolio/[email protected]/d3.chart.layout") 
library(htmltools) 
library(networkD3) 

hc = hclust(dist(mtcars)) 

treeNetwork( 
    as.treeNetwork(hc, "mtcars") 
) 

tagList(
    lapply(
    c("tree.cartesian" 
     ,"tree.radial" 
     ,"cluster.cartesian" 
     ,"cluster.radial" 
    ) 
    ,function(chartType){ 
     hierNetwork(as.treeNetwork(hc), type=chartType, zoomable=T, collapsible=T) 
    } 
) 
) 
tree.cartesian 

編輯1

我們如何利用這些圖表爲邊緣文件建立一個網絡?例如:

From To 
A  B 
A  C 
A  D 
D  L 
L  J 
J  T 
B  O 
+0

你在哪裏得到「未找到對象」? – Marcelo

+0

@Marcelo - 在控制檯本身 – NinjaR

+0

我的意思是詢問代碼的哪一行出現錯誤。 – Marcelo

回答

0

是:

library(networkD3) 
to <- c("a","a","a","d","l","j","b") 
from <- c("b","c","d","l","j","t","o") 
df <-data.frame(to,from) 
simpleNetwork(df) 

你應該使用官方networkD3包:

install.packages("networkD3") 
+0

但是這不會給我我正在尋找的可摺疊網絡.. – NinjaR

0

我不知道什麼tree.cartesian對象應該是在你的代碼,但是您收到錯誤「找不到對象」,因爲tree.cartesian對象從未在您的代碼中創建。

話雖如此,如果您從tagList函數中刪除您的lapply命令,您的代碼將工作。或者更簡潔...

devtools::install_github("timelyportfolio/[email protected]/d3.chart.layout") 
library(networkD3) 

hc = hclust(dist(mtcars)) 

hierNetwork(as.treeNetwork(hc), type = 'tree.cartesian', zoomable = T, collapsible = T) 
# or 
hierNetwork(as.treeNetwork(hc), type = 'tree.radial', zoomable = T, collapsible = T) 
# or 
hierNetwork(as.treeNetwork(hc), type = 'cluster.cartesian', zoomable = T, collapsible = T) 
# or 
hierNetwork(as.treeNetwork(hc), type = 'cluster.radial', zoomable = T, collapsible = T) 

只是要清楚,你正在使用networkD3,其中(據我所知)不再被開發的一個分支。目前有一些意向將此功能添加到官方的networkD3分支,但目前(v0.3.1),此功能(可摺疊分支)當前不可用。

+0

這是否回答你的問題? –

0

networkD3的當前官方開發版本(v0.4.9000截至2017.09.02)具有新功能treeNetwork,可啓用可摺疊樹。

devtools::install_github("christophergandrud/networkD3") 
library(networkD3) 

hc <- hclust(dist(mtcars)) 
treeNetwork(hc) 

edges <- read.table(header = T, text = " 
From To 
NA  A 
A  B 
A  C 
A  D 
D  L 
L  J 
J  T 
B  O 
") 

edges <- as_treenetdf(edges, cols = c(nodeId = "To", parentId = "From")) 
treeNetwork(edges) 

它還在開發中,所以我們將不勝感激feedback