【问题标题】:Use neo4j with R将 neo4j 与 R 一起使用
【发布时间】:2012-06-26 16:24:50
【问题描述】:

是否有支持 neo4j 的 R 库?我想从 neo4j 构建一个 R 图(例如 igraph),或者 - 反之亦然 - 在 neo4j 中存储一个 R 图。

更准确地说,我正在为 Python 寻找类似于 bulbflow 的东西。


更新

有一个用于 R 的新 neo4j 驱动程序看起来很有前途:http://nicolewhite.github.io/RNeo4j/。我改了正确答案。

【问题讨论】:

  • 由于neo4j有一个REST API,你应该可以手动连接它,RJSONIO包处理JSON数据,RCurl发送查询。
  • 当然可以通过 REST 直接访问,感谢 RJSONIO。我正在寻找的是对 neo4j 更方便的 R 绑定。类似于:“g
  • 另外,您可能可以导入和导出 GraphML?,请参阅docs.neo4j.org/chunked/snapshot/… 进行加载,导出类似。
  • 我不确定是否有任何 R 库。这可能有助于查看Neo4j-Cypher-R Example Code

标签: r graph neo4j bulbs


【解决方案1】:

这个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)

【讨论】:

  • 很高兴知道我并不孤单 ;) 知道你为什么要做这个以及你如何使用 neo4j 会很有趣。
【解决方案2】:

考虑 RNeo4j 驱动程序。上面显示的函数是不完整的:它不能返回单列数据,也没有 NULL 处理。

https://github.com/nicolewhite/RNeo4j

【讨论】:

  • 很好,我去看看!
【解决方案3】:

我尝试使用 R 脚本(非常感谢提供它),在我看来您可以直接使用: /db/data/cypher 代替 db/data/ext/CypherPlugin/graphdb/execute_query (使用 neo4j 2.0)。

【讨论】:

    【解决方案4】:

    不确定它是否符合您的要求,但请查看 Gephi。 http://gephi.org/.

    【讨论】:

    • 这与我的问题无关......我正在寻找一个可以轻松访问 neo4j 的 R 包。不过 Gephi 不错 :)
    • 我使用 Gephi 作为 Neo 的中间体。如果您将 igraph 导出到 GEXF,然后将其导入到 gephi,则有一个很好的插件。然后你可以导出到neo4j。这有点迂回,但通过点击式的方式很容易。