2012-06-25 24 views
16

Có thư viện R hỗ trợ neo4j không? Tôi muốn xây dựng một đồ thị R (ví dụ: igraph) từ neo4j hoặc - ngược lại - lưu trữ một đồ thị R trong neo4j.Sử dụng neo4j với R

Chính xác hơn, tôi đang tìm kiếm một cái gì đó tương tự như bulbflow cho Python.


Cập nhật

Có một tài xế neo4j mới cho R trông đầy hứa hẹn: http://nicolewhite.github.io/RNeo4j/. Tôi đã thay đổi câu trả lời đúng.

+0

Kể từ neo4j có một [REST API] (http://docs.neo4j.org/chunked/1.6/rest-api.html), bạn sẽ có thể kết nối với nó bằng tay, với gói 'RJSONIO' để xử lý dữ liệu JSON và 'RCurl' để gửi truy vấn. –

+0

Bạn có thể truy cập trực tiếp qua REST, nhờ RJSONIO. Những gì tôi đang tìm kiếm là một ràng buộc R thuận tiện hơn cho neo4j. một cái gì đó như: "g <- graph.neo4j(), g.addNode (x), g.addEdge (từ, đến)". –

+0

Ngoài ra, bạn có thể nhập và xuất GraphML ?, Xem http://docs.neo4j.org/chunked/snapshot/gremlin-plugin.html#rest-api-load-a-sample-graph để tải, xuất tương tự . –

Trả lời

11

Cân nhắc trình điều khiển RNeo4j. Hàm được hiển thị ở trên không đầy đủ: nó không thể trả về dữ liệu cột đơn và không có xử lý NULL.

https://github.com/nicolewhite/RNeo4j

+0

Rất đẹp, tôi sẽ xem! –

0

Không chắc chắn nếu nó phù hợp với yêu cầu của bạn nhưng có một cái nhìn tại Gephi. http://gephi.org/.

+1

Điều này không thực sự liên quan đến câu hỏi của tôi ... Tôi đang tìm gói R cho phép dễ dàng truy cập vào neo4j. Gephi là tốt đẹp mặc dù :) –

+0

Tôi sử dụng Gephi như một trung gian để neo. Có một plugin tốt nếu bạn xuất igraph sang GEXF, sau đó nhập nó vào gephi. Sau đó, bạn có thể xuất sang neo4j. Đó là một chút mạch, nhưng dễ dàng trong một loại point-and-click. – Mittenchops

13

Điều này link có thể hữu ích. Tôi sẽ kết nối ne04j với R trong những ngày tiếp theo và sẽ thử đầu tiên với liên kết được cung cấp. Hy vọng nó giúp.

Tôi đã dùng thử và hoạt động tốt. Dưới đây là các chức năng hoạt động: Đầu tiên, cài đặt và tải gói và sau đó thực hiện chức năng:

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 

} 

và đây là một ví dụ về chức năng gọi số:

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

Tốt để biết rằng tôi không phải một mình trong này;) Sẽ rất thú vị để biết lý do tại sao bạn đang làm việc này và cách bạn sử dụng neo4j. –

1

Tôi cố gắng để sử dụng kịch bản R (thanks a lot cho việc cung cấp nó) và có vẻ như với tôi rằng bạn có thể trực tiếp sử dụng: /db/data/cypher thay vì db/data/ext/CypherPlugin/graphdb/execute_query 012.(với neo4j 2.0).

Các vấn đề liên quan