Rcpp:错误:与请求的类型不兼容

2023-12-23

我有这个 C++ 代码:

#include <R.h>
#include <Rcpp.h>
using namespace Rcpp;
extern "C" {
  SEXP gensampleRcpp2( Function rlawfunc, SEXP n) {
    Rcpp::RNGScope __rngScope;
    return Rcpp::List::create(Rcpp::Named("sample") = rlawfunc(n),
                   Rcpp::Named("law.name") = " ",
                   Rcpp::Named("law.pars") = R_NilValue);
  }

  RcppExport SEXP gensampleRcpp(SEXP rlawfuncSEXP, SEXP nSEXP) {
    BEGIN_RCPP
    Function rlawfunc = Rcpp::as<Function >(rlawfuncSEXP);
    IntegerVector n = Rcpp::as<IntegerVector >(nSEXP);
    SEXP __result = gensampleRcpp2(rlawfunc, n);
    return Rcpp::wrap(__result);
    END_RCPP
      }

  SEXP compquantRcpp2(IntegerVector n, IntegerVector M, Function Rlaw) {
    int i;
    GetRNGstate();
    for (i=1;i<=M[0];i++) {
    List resultsample = gensampleRcpp2(Rlaw, n);
    NumericVector mysample = Rcpp::as<NumericVector >(resultsample["sample"]);
    }
    PutRNGstate();
    return Rcpp::List::create(Rcpp::Named("law.pars") = "");
  }

  RcppExport SEXP compquantRcpp(SEXP nSEXP, SEXP MSEXP, SEXP RlawSEXP) {
    BEGIN_RCPP
    IntegerVector n = Rcpp::as<IntegerVector >(nSEXP);
    IntegerVector M = Rcpp::as<IntegerVector >(MSEXP);
    Function Rlaw = Rcpp::as<Function >(RlawSEXP);
    SEXP __result = compquantRcpp2(n, M, Rlaw);
    return Rcpp::wrap(__result);
    END_RCPP
      }
}

和这个 R 代码:

compquant <- function(n=50,M=10^3,Rlaw=rnorm) {
  out <- .Call("compquantRcpp",n=as.integer(n),M=as.integer(M),as.function(Rlaw),PACKAGE="PoweR") 
  return(out)
}

在一个名为 PoweR 的包中(事实上,上面的代码是我自己代码的简化,所以不要试图理解它的目的)。当我编译我的包(在 Linux 和 R 版本 3.1.0 下)并在控制台中发出以下 R 命令时:

require(PoweR)
compquant()

我收到以下错误:错误:与请求的类型不兼容

您知道可能出现什么问题以及如何解决它吗?

谢谢。


我只需要删除第六行: Rcpp::RNGScope __rngScope; 来解决问题。话虽这么说,Dirk Eddelbuettel 在 rcpp-devel 上给出了关于如何大大简化整个过程的很好的提示。非常感谢德克。

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

Rcpp:错误:与请求的类型不兼容 的相关文章

随机推荐

  • 如何在 Linux 中进行队列管理器备份和恢复

    您好 我有名为 QM 1 的队列管理器 在这里 我已经备份了 QM 1 如下所示 之后 我在其他系统中创建了同名的队列管理器 QM 1 我需要恢复保存 qmgr 属性 请提供如何恢复队列管理器属性 saveqmgr m QM 1 f 一些选
  • 感知器学习算法不收敛于 0

    这是我在 ANSI C 中的感知器实现 include
  • 如何使用 parsley.js 模式标签?

    我如何添加attr data parsley pattern 正确标记到输入 我写了这个
  • 如何使用多个工作人员加速批量导入谷歌云数据存储?

    我有一个基于 apache beam 的数据流作业可以使用VCF源 https github com apache beam blob master sdks python apache beam io vcfio py从单个文本文件 存储
  • 如何将查询结果(单个文档)存储到变量中?

    我想将单个文档保存到 Mongo JS shell 中的变量中 并为后续操作操作文档 读 写多个属性 但 Mongo JS 似乎没有将任何内容放入变量中 gt a db col find limit 1 id ObjectId 52dfcc
  • FileUpload 问题 - 多部分文件为空值

    我正在开发一个 Spring Web 应用程序 需要为我的页面之一实现一个简单的 FileUpload JSP 页面包含以下代码片段 其中包括用于上传文件的上传字段
  • 在 Go 中跨包访问变量

    我的范围内有两个变量package main 那些将是这些 var app Application cfg Config 现在 由于我的应用程序的大小开始增加 我决定将网站的每个模块放在自己的包中 就像子目录一样 src github co
  • 当客户端使用Cache-Control时,它意味着什么?

    我以为我理解 Http 标头 Cache Control max age 3600 的含义 但后来我在客户端请求中遇到它 如下所示 Cache Control max age 0 我不完全确定从客户的角度来看这意味着什么 任何见解都会很棒
  • 派生镜像时继承了哪些Dockerfile指令?

    假设我有两个 Dockerfile 用于创建带有各自标签的映像 Dockerfile A FROM some image EXPOSE 9000 ENTRYPOINT some script sh and Dockerfile B FROM
  • C++ 中的唯一数字[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试有效地列出 1 到 100
  • 同像性,它是如何运作的?

    有人可以推荐解释同像性概念的文章 尤其是使用 Clojure 的文章 为什么 Clojure 是同音的 但在 Java 等其他语言中却很难做到这一点 在我继续讨论一些我想添加另一个答案的事情之前 这里还有一个参考 与同像性相关的部分相当短
  • TinyMCE file_picker_callback 从默认浏览器文件选择中选择图像

    我在项目中使用 TinyMCE 并希望用户使用其默认插入图像窗口选择图像并将其上传到服务器 我想点击以下按钮 打开浏览器默认文件选择窗口并将所选图像添加到编辑器中 到目前为止我的代码如下 JS tinymce init selector h
  • while(!(cin >> x)) 如何重新提示输入

    while cin gt gt ar i cin clear clears bad input while cin get n continue cout lt lt Invalid input please enter valid sco
  • byte[] 数组上的 GetHashCode()

    什么是GetHashCode 调用时计算byte 大批 具有相同内容的 2 个数据数组不提供相同的哈希值 NET 中的数组不会覆盖Equals or GetHashCode 因此您将获得的值基本上基于引用相等性 即默认实现Object 为了
  • 等待动画、渲染完成 - XAML 和 C#

    我遇到的情况是 我正在对 XAML 应用程序的一部分进行动画处理 并且我需要等待动画和渲染完成 然后才能继续编写代码 到目前为止 我的函数的尾部如下所示 ProcExpandCollapse Begin while ProcExpandCo
  • SQL-如何选择具有最大值的列的行[重复]

    这个问题在这里已经有答案了 date value 18 5 2010 1 pm 40 18 5 2010 2 pm 20 18 5 2010 3 pm 60 18 5 2010 4 pm 30 18 5 2010 5 pm 60 18 5
  • Laravel 如何检查验证唯一表两个字段

    我有 tableA 有 2 个字段 1 song id 2 playlist id 我想检查 laravel 验证独特的功能 示例 我已插入数据 id gt 1 song id gt 2 playlist id gt 34 然后我必须再次插
  • 仅删除给定字符串中的第一个单词

    我正在尝试从给定字符串中删除第一个单词 到目前为止我已经完成了 word removeMe meow whatever needle removeMe haystack To replace with word str replace ne
  • 同一域中 IE9 中的 Script5 访问被拒绝

    我正在 django 中开发一个网站 它使用 jquery 多文件上传插件 当我注册到我的网站时 一封确认电子邮件会发送到我的 Gmail 帐户 我单击激活链接 我的网站将在新选项卡中打开 我登录 然后尝试上传文件 但在 IE9 中失败 F
  • Rcpp:错误:与请求的类型不兼容

    我有这个 C 代码 include