2012-06-25 13 views
16

¿Hay una biblioteca R que admita neo4j? Me gustaría construir un gráfico R (por ejemplo, igraph) de neo4j o viceversa, almacenar un gráfico R en neo4j.Utilice neo4j con R

Más precisamente, estoy buscando algo similar a bulbflow para Python.


actualización

Hay un nuevo controlador para R Neo4j que parece prometedor: http://nicolewhite.github.io/RNeo4j/. Cambié la respuesta correcta.

+0

Desde Neo4j tiene una [REST API] (http://docs.neo4j.org/chunked/1.6/rest-api.html), usted debe ser capaz de conectarse a él con la mano, con el paquete 'RJSONIO' para manejar los datos JSON y' RCurl' para enviar las consultas. –

+0

Un acceso directo a través de REST es posible, por supuesto, gracias por RJSONIO. Lo que estoy buscando es un enlace R más conveniente para neo4j. algo así como: "g <- graph.neo4j(), g.addNode (x), g.addEdge (from, to)". –

+0

Además, ¿podría importar y exportar GraphML ?, consulte http://docs.neo4j.org/chunked/snapshot/gremlin-plugin.html#rest-api-load-a-samplegraph para cargar, exportar es similar . –

Respuesta

11

Considere el controlador RNeo4j. La función que se muestra arriba está incompleta: no puede devolver datos de una sola columna y no hay manejo NULL.

https://github.com/nicolewhite/RNeo4j

+0

Muy bien, voy a echar un vistazo! –

0

No estoy seguro de si se ajusta a sus necesidades, pero eche un vistazo a Gephi. http://gephi.org/.

+1

Esto no se relaciona realmente con mi pregunta ... Estoy buscando un paquete R eso permite un fácil acceso a neo4j. Gephi es bueno :) –

+0

Yo uso Gephi como intermedio para neo. Hay un buen complemento si exporta igraph a GEXF, luego lo importa a gephi. Entonces puedes exportar a neo4j. Es un poco tortuoso, pero fácil en un tipo de apuntar y hacer clic. – Mittenchops

13

Esto link puede ser útil. Voy a conectar ne04j con R en los próximos días y lo intentaré primero con el enlace provisto. Espero eso ayude.

Lo probé y funciona bien. Esta es la función que funciona: En primer lugar, instalar y paquetes de carga y luego ejecutar la función:

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 

} 

y esto es un ejemplo de la función que llama:

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

Es bueno saber que no estoy solo en esto;) Sería interesante saber por qué estás trabajando en esto y cómo usas neo4j. –

1

He intentado utilizar la secuencia de comandos R (muchas gracias por dotándolo) y me parece que se puede utilizar directamente: /db/data/Cypher en lugar de db/data/ext/CypherPlugin/graphdb/execute_query (con neo4j 2.0).