如何使用向量或数据帧在 RNeo4j 中创建节点

2023-11-24

流行的图数据库Neo4j可以在以下范围内使用R感谢包/驱动程序RNeo4j (https://github.com/nicolewhite/Rneo4j).

包作者,@妮可·怀特,提供several 很好的例子其使用情况GitHub.

对我来说不幸的是,@NicoleWhite 给出的示例和文档有点过于简单化,因为它们手动创建每个图形节点及其关联的labels and properties, 例如:

mugshots = createNode(graph, "Bar", name = "Mugshots", location = "Downtown")
parlor = createNode(graph, "Bar", name = "The Parlor", location = "Hyde Park")
nicole = createNode(graph, name = "Nicole", status = "Student")
addLabel(nicole, "Person")

当您处理一个很小的示例数据集时,这一切都很好,但是对于像具有数千个用户的大型社交图这样的东西来说,这种方法是不可行的,其中每个用户都是一个节点(这样的图可能不会利用其中的每个节点)每个查询,但仍然需要输入Neo4j).

我试图弄清楚如何使用向量或数据帧来做到这一点。有没有解决方案,也许涉及apply声明或for loop?

这个基本尝试:

for (i in 1:length(df$user_id)){
paste(df$user_id[i]) = createNode(graph, "user", name = df$name[i], email = df$email[i])
}

导致Error: 400 Bad Request


作为第一次尝试,您应该查看我刚刚为事务端点添加的功能:

http://nicolewhite.github.io/RNeo4j/docs/transactions.html

library(RNeo4j)

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

data = data.frame(Origin = c("SFO", "AUS", "MCI"),
                  FlightNum = c(1, 2, 3),
                  Destination = c("PDX", "MCI", "LGA"))


query = "
MERGE (origin:Airport {name:{origin_name}})
MERGE (destination:Airport {name:{dest_name}})
CREATE (origin)<-[:ORIGIN]-(:Flight {number:{flight_num}})-[:DESTINATION]->(destination)
"

t = newTransaction(graph)

for (i in 1:nrow(data)) {
  origin_name = data[i, ]$Origin
  dest_name = data[i, ]$Dest
  flight_num = data[i, ]$FlightNum

  appendCypher(t, 
               query, 
               origin_name = origin_name, 
               dest_name = dest_name, 
               flight_num = flight_num)
}

commit(t)

cypher(graph, "MATCH (o:Airport)<-[:ORIGIN]-(f:Flight)-[:DESTINATION]->(d:Airport)
               RETURN o.name, f.number, d.name")

在这里,我形成一个 Cypher 查询,然后循环访问数据帧并将值作为参数传递给 Cypher 查询。您现在的尝试会很慢,因为您要为创建的每个节点发送单独的 HTTP 请求。通过使用事务端点,您可以在单个事务下创建多个事物。如果您的数据框非常大,我会将每个事务分成大约 1000 行。

作为第二次尝试,您应该考虑在 neo4j-shell 中使用 LOAD CSV。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用向量或数据帧在 RNeo4j 中创建节点 的相关文章

  • R从列表中提取数据框,列名中没有前缀

    我在列表中放置了一个数据框 然后 当尝试将其提取回来时 我得到了该数据帧的所有以列表键为前缀的列名称 有没有办法完全按照最初传递的方式提取数据帧 cols lt c column1 Column2 Column3 df1 lt data f
  • 将summary()写入as.data.frame以在ggplot / R中使用

    请查找 af 数据样本t below 我正在使用以下方法进行竞争风险分析etmCIF来自etm package 产生以下结果 这很好 但需要更好的图形 曾经有一个ggtrans etm函数将数据导入ggplot 然而 这个功能显然被删除了
  • 如何在不循环的情况下添加组ID?

    我有数据框 例如 productid ordernum p1 10 p2 20 p3 30 p4 5 p5 20 p6 8 我想添加另一列 称为 groupid 它将产品按顺序分组在一起 一旦 sum ordernum 达到 30 分配一个
  • ggplot 中的错误问题:“grid.Call(”L_textBounds“, as.graphicsAnnot(x$label), x$x, x$y, … 中的错误”[重复]

    这个问题在这里已经有答案了 我试图在 ggplot 中制作一个条形图 其中我通过强制其中一些标签为长度为零的字符串 即 来指定要显示的标签 但是 我收到错误 Error in grid Call L textBounds as graphi
  • 如何更新条件公式?

    让我直接进入示例 考虑以下等式 frml lt formula y a b x z 使用这样的公式规范 例如和AER ivreg 我想更新这个公式 使其显示为 frml2 lt y a b c x z w 但是 我不确定如何更新条件标志之前
  • dplyr,do(),从模型中提取参数而不丢失分组变量

    R 帮助中关于 do 的示例略有不同 by cyl lt group by mtcars cyl models lt by cyl gt do mod lm mpg disp data coefficients lt models gt d
  • 将 VLMC 拟合到很长的序列

    我正在尝试将 VLMC 拟合到最长序列为 296 个状态的数据集 我这样做如下所示 Load libraries library PST library RCurl library TraMineR Load and transform d
  • 根据另一列中的键累积一列中的值时出现问题

    我有一个看起来像这样的数据框 我需要使用 PROJ ID 列中的字符串创建一个新的值列 并形成 PROJ NAME 列中的值字符串 这里提供的解决方案 根据 r 中另一列的键累积一列中的值 https stackoverflow com q
  • 使用 Cypher 复制不同类型的关系

    我想将现有关系复制到新节点 所有节点都已存在 我想将所有传入关系复制到第二个节点 给定一个节点D和一个像这样的图表 A r gt B lt s C 我想在单个 Cypher 查询中创建以下内容 A r gt B lt s C A r gt
  • 仅保留百分比的尾随零

    给出以下示例 library pander tableAbs lt Titanic 1 1 tablePct lt round prop table tableAbs 100 2 table lt cbind tableAbs tableP
  • 解析,用三点参数替换

    让我们考虑一个典型的deparse substitute R call f1 lt function u x y print deparse substitute x varU vu varX vx varY vy f1 u varU x
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • R:表格格式

    我有一个包含以下列的 Excel 文件 Column1 Column2 Column3 ab bb 0 5 ab bc 0 1 ab cd 0 7 ab dd 0 8 ac bb 0 2 ac bg 0 8 ac ee 0 8 ac dd
  • 带 R 的多彩标题

    我想添加颜色某些词在我的图表标题中 我已经能够在这里找到一些先例 http blog revolutionanalytics com 2009 01 multicolor text in r html 具体来说 我希望用撇号括起来的文本 在
  • ggplot散点图中的图例问题

    我想使用 ggplot 创建显示方法比较数据的散点图 绘图应包含原始数据 理想线和带误差的拟合线 图例应显示理想线和拟合线的线型 线宽 线颜色 我可以获得大部分我想要的东西 但是图例存在以下问题 图例显示每种线型有 2 条线 为什么 如何解
  • 为什么 geom_boxplot 比基本箱线图识别更多异常值?

    这是一个可重复的示例 与基本箱线图相比 最后一个治疗组又发现了一个异常值 dta lt structure list Treatment c A A A A A A A A A A A A A A A A B B B B B B B B B
  • 如何匹配 R 中的所有匹配项?

    我有 1000 个名字的列表 说A 我还有另外 5 个名字的清单 说B 我想找出这5个名字出现在1000个号码列表中的第几行 例如 Amy 在 A 中可以出现 25 次 B 里有艾米 我想知道 Amy 出现在 A 中的哪些行 我以前使用过
  • ggplot2、R 中的单条形条形图

    我有以下数据和代码 gt ddf var1 var2 1 aa 73 2 bb 18 3 cc 9 gt gt dput ddf structure list var1 c aa bb cc var2 c 73L 18L 9L Names
  • GGPLOT2:如何在 ggplot() 脚本中绘制特定选择

    这是一个名为的大型数据集的峰值P 其中有 10 个优惠 CS 有不同的商店 SHP 具有多个数值 数据集列出了按周排序的它们 WK 2 tm 52 它创建一个大文件 仅前 6 行出现峰值 WK MND CS SHP RevCY RevLY
  • 单击 R 中的 Sankey Chart 线时添加额外的标签值

    以下 R 闪亮脚本创建一个桑基图 如下面的快照所示 我的要求是 当我单击左右节点之间的任何链接 即 a1 和 a2 时 我希望相应的 a3 的总和出现在标签中 例如 a1 中的 A 和 a2 中的 E 总共具有值 50 和 32 因此 我想

随机推荐

  • 拦截来电ios sdk(非越狱)

    您好 我尝试了很多次 发现由于安全原因 iOS SDK 不允许我们访问以下数据 拦截来电 从来电中获取电话号码 读取通话记录 拦截短信 从收到的短信中获取电话号码并读取其内容 阻止来电 etc 以下是我搜索有关此问题的一些链接 如何从 iP
  • SQL ' ' 不会被转义

    我正在尝试通过执行以下操作在 SQL 2008 中运行查询 query varchar max SET query SELECT FROM Table WHERE Name Karl EXEC query 问题是由于某种原因周围的撇号 Ka
  • Web Api 错误地反序列化枚举列表

    因此 我使用 Web API 控制器来接受 JSON 请求 它映射到包含枚举列表的模型对象 我遇到的问题是 如果 JSON 包含无效值 它似乎无法正确反序列化 我希望将无效值映射到枚举列表中的 0 值类型 但这并没有发生 我隔离了 3 种主
  • Android模拟器:设置移动设备号码?

    有谁知道是否可以设置模拟器的手机号码 我无法在任何地方找到有关此的信息 谢谢 基本上完全控制本博客末尾详细介绍的电话号码 http blog talosintel com 2013 04 changing imei provider mod
  • ggplot2:如何为由不同颜色的线连接的点指定多种填充颜色

    I am new to ggplot2 I would like to create a line plot that has points on them where the points are filled with differen
  • fopen 函数中的 a 和 a+ 选项有什么区别?

    我无法理解C fopen api文档中 a 和 a 选项的描述 a 中的选项是追加和更新 这里的 更新 一词是什么意思 这是手册页的内容 man fopen say a 打开以追加 写在文件末尾 如果满足则创建该文件 不存在 该流位于文件末
  • 在 Swing GUI 中嵌入视频的简单方法

    我一直在寻找一种将视频嵌入到我的 Java Swing GUI 中的极其简单的方法 我在追风吗 理想情况下 我希望有这样的东西 VideoPlayer video new VideoPlayer filename frame getCont
  • 我们应该密封单身人士吗?我们应该首先尝试从单例继承吗?

    是否应该允许 Singleton 类有孩子 我们应该密封它吗 优缺点都有什么 为了能够从 Singleton 类继承 我们必须将构造函数设置为受保护的而不是私有的 现在 这在 c 中没问题 但 java 中的 protected 字允许子类
  • 手动获取 AuthenticationManager 实例

    我正在尝试实现以下内容 但我的authenticationManager 实例抛出以下异常并且未自动装配 如何从 Spring 手动获取它的实例 我没有使用 Spring 控制器 而是使用 JSF 请求作用域 bean 当容器尝试自动装配a
  • 在 Play 2 路由中处理自由格式 GET URL 参数

    假设我有一个可以选择接受两个参数的操作 def foo name String age Integer Action name age can both be null if not passed 我如何设置我的route文件以使用以下任何
  • Seaborn 箱线图:类型错误:/ 不支持的操作数类型:“str”和“int”

    我尝试像这样制作垂直的seaborn箱线图 import pandas as pd df pd DataFrame a a b b a b 5 6 4 3 import seaborn as sns import matplotlib py
  • 聚合、关联和组合[重复]

    这个问题在这里已经有答案了 我有一个这样简单的例子 public class Order private ArrayList
  • 关于 iPhone 中的环境光传感器

    提前致谢 我从以下网站获得了有关 iphone 传感器的信息http ipod about com od ipodiphonehardwareterms qt iphone sensors htm 但我没有得到有关如何在 iPhone 中使
  • 解码 WAV 文件头

    我正在尝试理解 WAV 文件的标头 我打开了一个示例文件并得到了这个 5249 4646 e857 1400 5741 5645 666d 7420 1000 0000 0100 0200 44ac 0000 10b1 0200 0400
  • 在Android中保存之前处理首选项的值?

    我需要先加密我的密码 然后再将其保存到本地 Android 数据库 没有加密一切都工作正常 我有preferences xml等等 我怎样才能调用一个函数after我更改首选项值 例如密码 这是我的代码 public class Prefe
  • 自动映射器映射到可为空的 DateTime 属性

    使用 Automapper 3 1 1 我无法编译此地图 Mapper CreateMap
  • 省略号用于截断长文本

    我正在使用省略号概念来截断 HTML 中的长文本 我已成功截断该句子 但 不会出现在我的 HTML 中 我将以下内容用于CSS 输出似乎很好 即 对于测试测试测试测试测试测试测试测试 输出是测试测试测试 当我真的想要它作为测试测试测试时 d
  • 从 Hyperledger Fabric Node SDK 中的 InvokeChaincode() 函数获取链码调用方 ID

    我们假设以下网络架构 A gt 链码1 gt fabcar A是应用程序 链码1是 Go 中的链码fabcar是 Nodejs 中的链代码 他们在同一频道 mychannel 何时执行操作APIstub InvokeChaincode来自链
  • 保存到用户图库/从用户图库获取 JPEG,无需重新压缩

    我正在尝试找到一种方法来读取 JPEG 图像并将其写入用户图库 相机胶卷 而无需 iOS 重新压缩它们 UIImage 似乎是这里的瓶颈 我发现的保存到用户图库的唯一方法是 UIImageWriteToSavedPhotosAlbum 有没
  • 如何使用向量或数据帧在 RNeo4j 中创建节点

    流行的图数据库Neo4j可以在以下范围内使用R感谢包 驱动程序RNeo4j https github com nicolewhite Rneo4j 包作者 妮可 怀特 提供several 很好的例子其使用情况GitHub 对我来说不幸的是