5

我正在尝试从全局网络(特定节点的子网络到特定深度)中提取子图。

该网络由标记为 Account 的节点组成,其属性为 iban,关系为TRANSFER_TO_AGG.

密码语法如下:

MATCH (a:Account { iban :'FR7618206004274157697300156' }),(b:Account),
p = allShortestPaths((a)-[:TRANSFER_TO_AGG*..3]-(b))
RETURN p limit 250

这在 Neo4J Web 界面上完美运行。但是,当尝试使用命令 cypher 将结果保存到 R 对象时,出现以下错误:

"Error in as.data.frame.list(value, row.names = rlabs) : 
  supplied 92 row names for 1 rows"

我相信这是因为如果返回数据,您只能查询表格结果。也就是说,对于包含数组属性、集合、节点或关系的 Cypher 结果,此方法没有当前功能。

任何人都可以提供解决方案吗?

4

1 回答 1

3

我最近添加了将路径作为 R 对象返回的功能。首先,卸载/重新安装 RNeo4j。然后,看:

?getSinglePath

?getPaths

?最短路径

?allShortestPaths

?节点

?rels

?startNode

?endNode

对于您的具体查询,您将使用getPaths()

library(RNeo4j)
graph = startGraph("http://localhost:7474/db/data/")

query = "
MATCH (a:Account { iban :'FR7618206004274157697300156' }),(b:Account),
p = allShortestPaths((a)-[:TRANSFER_TO_AGG*..3]-(b))
RETURN p limit 250
"

p = getPaths(graph, query)

p是路径对象的列表。有关将 apply 系列函数与路径对象列表一起使用的示例,请参阅文档。

于 2014-11-03T01:37:26.043 回答