2012-06-25 56 views
16

是否有支持neo4j的R庫?我想從neo4j構建R圖(例如igraph),反之亦然 - 在neo4j中存儲R圖。與R使用neo4j

更確切地說,我正在尋找類似於Python的bulbflow的東西。


更新

有針對R,看起來有前途的一個新的Neo4j驅動程序:http://nicolewhite.github.io/RNeo4j/。我改變了正確的答案。

+0

由於Neo4j的有[REST API(http://docs.neo4j.org/chunked/1.6/rest-api.html), 你應該能夠通過手工連接到它, 與'RJSONIO'包處理JSON數據 和'RCurl'發送查詢。 –

+0

當然可以通過REST直接訪問,謝謝RJSONIO。我正在尋找的是neo4j更方便的R綁定。例如:「g < - graph.neo4j(),g.addNode(x),g.addEdge(from,to)」。 –

+0

另外,您可能可以導入和導出GraphML ?,請參閱http://docs.neo4j.org/chunked/snapshot/gremlin-plugin.html#rest-api-load-a-sample-graph進行加載,導出類似。 –

回答

11

考慮RNeo4j驅動程序。上面顯示的函數是不完整的:它不能返回單列數據,也沒有NULL處理。

https://github.com/nicolewhite/RNeo4j

+0

非常好,我會看看! –

0

不知道它是否符合您的要求,但看看格芬。 http://gephi.org/

+1

這並不真正涉及到我的問題...我正在尋找一個R包允許輕鬆訪問neo4j。 Gephi雖然不錯,但:) –

+0

我用Gephi作爲neo的中介。如果您將igraph導出到GEXF,然後將其導入到gephi,那麼有一個好的插件。然後你可以輸出到neo4j。這是一個有點迂迴,但很容易點一種方式。 – Mittenchops

13

這個link可能會有幫助。我將在接下來的日子裏將ne04j與R連接起來,並會首先嚐試使用提供的鏈接。希望能幫助到你。

我試過了,效果很好。這裏是工作的功能: 一,安裝並加載包,然後執行功能:

install.packages('RCurl') 
install.packages('RJSONIO') 

library('bitops') 
library('RCurl') 
library('RJSONIO') 

query <- function(querystring) { 
    h = basicTextGatherer() 
    curlPerform(url="localhost:7474/db/data/ext/CypherPlugin/graphdb/execute_query", 
    postfields=paste('query',curlEscape(querystring), sep='='), 
    writefunction = h$update, 
    verbose = FALSE 
)   
    result <- fromJSON(h$value()) 
    #print(result) 
    data <- data.frame(t(sapply(result$data, unlist))) 
    print(data) 
    names(data) <- result$columns 

} 

,這是調用函數的例子:

q <-"start a = node(50) match a-->b RETURN b" 
data <- query(q) 
+1

很高興知道我並不孤單;)知道你爲什麼在做這件事以及如何使用neo4j會很有趣。 –

1

我試圖用R腳本(非常感謝提供它),在我看來,你可以直接使用: /數據庫/數據/暗號 代替 DB /數據/轉/ CypherPlugin/graphdb/execute_query (與neo4j 2.0)。