NumericVector 和 vector 之间有性能差异吗?

2024-06-02

假设有人使用NumericVector和其他用途vector<double>在他们的 Rcpp 代码中。两种用法之间是否存在显着差异,特别是在性能方面?


一般来说,是的。

所有 Rcpp(11) 类型都是围绕底层的“瘦代理对象”(我们在多个地方、演讲、幻灯片、我的书等中讨论过)SEXP对象。这意味着当您从 R 转到 C++ 以及从 C++ 返回到 R 时,不会创建任何副本。

使用标准 C++ 类型,例如std::vector<T>但是,通常需要副本。

所以你应该很容易地看到一些简单的测试脚本的差异N增加足够。

就我个人而言,我通常喜欢“干净”地使用 C++/STL 类型来编写“感觉更像 C++ 风格”的代码,但仍要注意性能损失。通常这并不重要,因为 C++ 解决方案比纯 R 解决方案中替换的解决方案更快。

但你的问题是,一个是否支配另一个,另一个显然是肯定的。

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

NumericVector 和 vector 之间有性能差异吗? 的相关文章

  • R/ggplot2:如何匹配重叠区域图中的图例和绘图颜色?

    我有两个面积图 称为 蓝色 和 绿色 其中green大部分是在blue情节 但在极少数点上 它高于blue阴谋 我想使用透明度说alpha 0 2对于两者 并且还能够为每个指定颜色 我现在的问题是 自从green情节主要是在blue地块 其
  • 在ggplot2中添加水平线到绘图和图例

    这段代码创建了一个漂亮的图 但我想在 y 50 处添加一条水平黑线 并让图例显示一条黑线 并在图例中显示文本 cutoff 但在图例中保留源点 我可以使用 geom line 添加该行 但无法在图例中获取该行 library ggplot2
  • 随着数据帧变大,如何防止 rbind() 变得非常慢?

    我有一个只有 1 行的数据框 为此 我开始使用 rbind 添加行 df mydataframe with only one row for i in 1 20000 df lt rbind df newrow 随着我的成长 这变得非常缓慢
  • 如何在R中用采样字符替换通配符

    我有以下顺序 s0 lt KDRH THLA RT HLAK 那里的通配符字符由 我想要做的是用该向量中的采样字符替换该字符 AADict lt c A R N D C E Q G H I L K M F P S T W Y V Since
  • 如何重新格式化数据并映射它?

    假设我有数据 其中列名称是城市 行名称是经度和纬度 Columbus Nashville Austin Washington D C London Manchester lon 82 99879 86 7816 97 74306 77 03
  • ggplot2 黑白配色方案的建议

    我正在使用 ggplot2 生成许多结构如下的图表 有没有一种简单的方法可以制作出黑白效果很好的东西 我确实读过这个question https stackoverflow com questions 2895319 how to add
  • 通过 R 中的方向矩阵进行回溯

    我有一个这样的矩阵 https i stack imgur com mzeRI png https i stack imgur com mzeRI png 你可以像这样加载它 matrix structure c C G C A 0 V V
  • 在 R Markdown 中,无论输出类型如何(pdf、html、docx),都在每个页面上创建页眉/页脚

    我想补充一下问题 当我编织为 pdf 时 那里的代码 也在下面 对我来说工作得非常好 但我不会获得 html 或 docx 输出的页眉 页脚 在 R Markdown 中 无论输出文档的类型如何 我可以做什么来为输出文档的每个页面生成页眉
  • R:在 glm() 中的逻辑回归中预测 (0,1)

    我正在尝试在二进制 Logit 模型中模拟 假设 情况 我正在估计通过测试的概率 考虑到测试的难度级别 1 最简单 5 最难 并以性别为控制 数据是here http dl dropbox com u 1791181 bayesglm cs
  • 更改分配新变量的默认环境

    我经常想在全局环境下的一个环境中创建很多变量 这可以通过以下方式轻松完成envir论证sys source 如果由正在获取的文件创建的所有变量都应该进入单个环境 但我通常使用创建变量集的文件 一组应该进入一个环境 另一组应该进入另一个环境
  • R 中二维核密度估计的混乱

    核密度估计器用于估计特定的概率密度函数 参见mvstat net http www mvstat net tduong research seminars seminar 2001 05 and scikit learn 文档 http s
  • 在 dplyr tbl_df 中获取删除列的最佳实践

    我记得 2001 年 r help 上的一条评论说drop TRUE in data frame是 R 历史上最糟糕的设计决策 dplyr纠正这一点并且不会隐式删除 当尝试将旧代码转换为dplyr风格 这会引入一些讨厌的错误d 1 or d
  • 按组连接/粘贴列并添加到原始数据

    我有一个名称数据框 名称 按 部门 分组 Dept Date Name 30 07 DEC 02 Raphaely 30 18 MAY 03 Khoo 40 07 JUN 02 Mavris 50 01 MAY 03 Kaufling 50
  • R 中的离散化

    有谁知道有一个包可以实现连续变量离散化的监督学习算法 dprep 包包含类似的功能 但该包已被弃用 有任何想法吗 感谢您的帮助 您仍然可以使用dprep包 但你必须从源代码安装它 我刚刚测试过 它运行良好 不过 您或许可以看看离散化 htt
  • 如何使用 ggplot2 在轴标签中使用上标

    如何在x轴上打印埃平方 我尝试如下 labs x x axis 2 y y axis 我们可以用bquote library ggplot2 ggplot mtcars aes hp mpg geom point labs x bquote
  • 从数据/系数创建 lm 对象

    有谁知道可以在给定数据集和系数的情况下创建 lm 对象的函数 我对此很感兴趣 因为我开始使用贝叶斯模型平均 BMA 并且我希望能够根据 bicreg 的结果创建 lm 对象 我想访问所有不错的通用 lm 函数 例如诊断绘图 预测 cv lm
  • 使用同一变量的多个子集创建新数据框

    我想创建一个新的数据框 其中的列是由不同变量分割的同一变量的子集 例如 我想创建一个新的变量子集 b 其中列由不同变量 year 的子集分割 set seed 88 df lt data frame year rep 1996 1998 3
  • 通过环境.yml 文件使用 conda 安装 R 包

    通常我会创建 conda 环境 例如 conda env create f environment yml conda activate env name 通常我使用 Python 工作 典型的environment yml简单的文件可能看
  • R 中带有自定义字段类的参考类?

    我想在另一个引用类中使用自定义引用类 但此代码失败 nameClass lt setRefClass nameClass fields list first character last character methods list ini
  • 使用 R 中的剪切函数对缺失值进行 NA 级别[重复]

    这个问题在这里已经有答案了 R 中的 cut 函数省略了 NA 但我想要一个缺失值的级别 这是我的 MWE set seed 12345 Y lt c rnorm n 50 mean 500 sd 1 NA Y1 lt cut log Y

随机推荐

  • 使用 axios 发送文件,不使用 FormData api

    我可以使用 axios 和 FormData api 将文件发送到服务器 如下所示 persist avatar let data new FormData data append avatar avatar axios post api
  • Qt ObjectName() 必须是唯一的吗?

    如标题所示的简单问题 如果我打电话setObjectName 在一个对象上 它是否必须是唯一的 或者只是因为约定而推荐 我已经子类化了QLabel 并希望自动为创建的对象命名 如果这是一个坏主意 我会找到一些设置随机唯一名称的方法 我实际上
  • 如何比 CGContextStrokePath 更快地渲染线条?

    我正在使用 CGContextStrokePath 绘制约 768 个点的图表 问题是 每一秒我都会得到一个新的数据点 从而重新绘制图表 目前 这个已经很繁忙的应用程序占用了 50 的 CPU 图形绘制是在UIView 中的drawRect
  • Phantomjs - 如何填充表单、提交并获取结果?

    我似乎无法进行简单的表单提交 下面是我向 Google 搜索表单提交 测试 并打印结果的代码 var url http www google com page new WebPage page open url function statu
  • 如何从脚本/模块 __main__ 启动 Celery Worker?

    我定义了一个Celery应用程序在一个模块中 现在我想从其同一模块中启动工作程序 main 即通过运行模块python m代替celery从命令行 我试过这个 app Celery project include project tasks
  • DeviceOrientationEvent:当 beta 接近/达到 90 度时如何处理疯狂的伽玛?

    有人有 DeviceOrientationEvent 经验并且有手机 平板电脑吗 在具有陀螺仪的设备上运行以下代码片段 我注意到当 beta 接近 90 度 设备指向上方 时 gamma 沿 y 轴左 右旋转 变得很大且不可预测 我假设这是
  • Django:无法为用于检索数据的模型实例化抽象模型

    我正在开发一个项目 该项目有一个 Djongo 抽象模型和一个主模型 当我尝试插入一个值时 它被插入而没有错误 但是当我尝试检索数据时 我得到 抽象模型无法实例化 这是我的模型 class Exam questions models Mod
  • 如何向javascript的日期时间对象添加24小时[重复]

    这个问题在这里已经有答案了 可能的重复 向 Javascript Date 对象添加小时 https stackoverflow com questions 1050720 adding hours to javascript date o
  • 使用 python 字典更新 MongoEngine 文档?

    是否可以使用 python 字典更新 MongoEngine 文档 例如 class Pets EmbeddedDocument name StringField class Person Document name StringField
  • ValueError:数学域错误,不断弹出

    我时常收到此消息 我尝试了所有的变化 改变我使用 sqrt 的方式 一步一步地做 等等 但这个错误仍然不断出现 这可能是一个菜鸟错误 我没有注意到 因为我是 python 和 ubuntu 的新手 这是我的源代码 一个非常简单的程序 To
  • 多个生产者,单个消费者:所有 goroutine 都在睡觉 - 死锁

    在继续工作之前 我一直遵循检查通道中是否有任何内容的模式 func consume msg lt chan message for if m ok lt msg ok fmt Println More messages m else bre
  • Android 中的自定义区域设置

    斯洛伐克的 Android 手机有一个自定义区域设置 en SK 和 cs SK 语言为捷克语或英语 位置为斯洛伐克 现在我想要有针对这些区域设置的字符串 默认方法是创建一个文件夹 values CountryCode 对于捷克共和国 它是
  • 带变量的 AWK 负正则表达式

    我在 bash 脚本中使用 awk 来比较两个文件以获取不匹配的行 我需要将第二个文件的所有三个字段 作为一个模式 与第一个文件的所有行进行比较 第一个文件 chr1 9997 10330 HumanGM18558 peak 1 150 1
  • 是否有 JavaScript 正则表达式相当于 Java 正则表达式中的交集 (&&) 运算符? [复制]

    这个问题在这里已经有答案了 在 Java 正则表达式中 您可以使用交集运算符 在字符类中以简洁地定义它们 例如 a z def d e or f a z bc a through z except for b and c JavaScrip
  • 将应用转移到另一个 Firebase 帐户

    我的个人 Firebase 帐户下有一些应用程序用于测试 但现在需要将应用程序转移到客户的帐户以进行计费 这可能吗 Thanks 我最近将一个项目的所有权转移到另一个帐户 您所要做的就是 转到 Firebase 控制台 然后选择要转移的项目
  • 设置 jdialog 框中文本的格式

    我有一个 JOptionPane JOptionPane showMessageDialog null text 文字是一个刺 String text Hello world 我想做的是改变文本的颜色 特别是一个单词 让我们说 你好 所以我
  • Gridview rowdatabound访问数据项vb

    我正在尝试将 ImageUrl 指向 GridView 中模板字段中的图像 但不断收到错误 你调用的对象是空的 在这一行 Dim imagePath As String rowView image path 我以前从未在 GridView
  • 使对象在运行时不可变 [C#]

    有什么方法 我希望利用反射 可以使实例化对象不可变及其所有公共财产 我有一个来自其他人的代码库 没有可用源 的类 我需要使用它 并且我基本上希望在实例化该类后 如果任何地方的任何代码段尝试调用该类中的公共设置器 则抛出异常 注意 我不想在类
  • 如何为 Gmail 开发 Chrome 扩展程序?

    我正在考虑为 Gmail 开发 Chrome 扩展程序 我想知道当前的最佳实践是什么 例如 默认情况下为每封电子邮件附加 GPG 签名 添加一个额外的按钮来执行某些操作 我已经有了 发送电子邮件并提示我完成某些操作的劫持操作 只是这些例子帮
  • NumericVector 和 vector 之间有性能差异吗?

    假设有人使用NumericVector和其他用途vector