【发布时间】:2014-09-14 13:51:43
【问题描述】:
我正在尝试从全局网络(特定节点的子网络到特定深度)中提取子图。
网络由标记为 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 结果,此方法没有当前功能。
谁能提供解决方案?
【问题讨论】:
-
对,cypher() 仅用于返回表格结果,而您返回的是路径(由节点和关系实体组成)。您可以使用 EXTRACT() 从路径中获取相关属性。如果您想分享更多关于您正在尝试做什么的信息,我可以尝试帮助您找到具有 RNeo4j 中当前可用功能的解决方案。我还没有触及用于返回路径的遍历 API 或功能,因为将这些东西表示为 R 对象并不简单。
-
Tnx 妮可!我最终使用标签和属性来标记相关的子图,然后使用这些标记提取和返回。非常感谢您的回答以及能够将 Neo4J 与 R 一起使用的出色软件包 - 它非常棒且非常有帮助!!!