jjzjj

c++ - 在 Rcpp 中实现应用功能

到目前为止,我一直在尝试在Rcpp中实现应用函数,代码如下所示//[[Rcpp::export]]NumericVectorapply(NumericMatrixx,intdim,Functionf){NumericVectoroutput;if(dim==1){for(inti=0;i但我在第6行和第11行收到错误“无法将SEXP转换为double赋值”。有没有办法将任意函数返回的值转换为double?应用函数也有一个糖函数。 最佳答案 apply没有糖功能.做你想做的最简单的方法是调用as,即:output[i]=as(f(x(

c++ - 如何计算 NumericVectors?

我对使用Rcpp进行编程还很陌生,所以我正在尝试新事物以了解一切如何运作。我写了一个小程序来比较两个NumericVectors与match()函数。我还想打印出输入Vectors和Output但它似乎不起作用,因为我没有取回Vectors的条目而是存储位置(或类似的东西)。我还没有为NumericVectors找到任何类型的“打印”函数,但也许还有另一种方法?任何帮助将不胜感激。这是我的代码:#includeusingnamespaceRcpp;usingnamespacestd;//[[Rcpp::export]]IntegerVectorvergl(NumericVectorei

c++ - 在 Ubuntu 上的 R 2.10 中安装 Rcpp

我试图在Ubuntu10.04上安装Rcpp并收到此错误(这意味着它不存在):>install.packages("Rcpp")Warningininstall.packages("Rcpp"):argument'lib'ismissing:using'/home/vadmin/R/i486-pc-linux-gnu-library/2.10'Warningmessage:IngetDependencies(pkgs,dependencies,available,lib):package‘Rcpp’isnotavailable我有一个可用的R实例并安装了许多其他包。编辑现在在关闭svn

c++ - 了解通过 RInside 将 Armadillo 矩阵传递给 R 函数

我正在尝试通过RInside在C++中使用R。我无法将Armadillo矩阵传递给R并返回结果。下面我能够从R库函数返回结果,但是我得到了错误的结果。我使用moments包中的偏度函数作为示例,它在R中应该正常工作。我检查了RInside中的示例,但我仍然不确定如何使用RcppArmadillo。如何正确地将C++中的Armadillo矩阵传递给R?#include#includeusingnamespacestd;usingnamespacearma;intmain(intargc,char*argv[]){RInsideR(argc,argv);stringR_libs="supp

c++ - 无法使用 Armadillo 示例编译 rinside

我正在尝试使用Rinside编译Rarmadillo示例,但我不断得到:Infileincludedfromrinside_arma0.cpp:8:0:/usr/local64/opt/R-2.15.2/lib/R/library/RcppArmadillo/include/RcppArmadillo.h:26:6:error:#error"Thefile'Rcpp.h'shouldnotbeincluded.Pleasecorrecttoincludeonly'RcppArmadillo.h'."我用谷歌搜索了它,但我一直在获取源代码本身。有什么想法吗?代码是://-*-c-inde

c++ - R:指向c函数的指针

如何将指向函数的指针从C代码传递到R(使用外部R)并在从R调用该函数之后?类似于:C:typedefvoid(*FunctionPtr)();SEXPans;PROTECT(ans=/*?somecode?*/);R_tryEval(ans,R_GlobalEnv,NULL);UNPROTECT(1);回复:callback_function()编辑:@RomainFrancois的帖子很有帮助。我的应用代码:namespace{voidcallback(){std::coutR和Rcppscript.R###################sourceCpp("utils.cpp")

c++ - 为什么标准 R 中值函数比简单的 C++ 替代函数慢得多?

我在C++中实现了以下中位数,并通过Rcpp在R中使用它://[[Rcpp::export]]doublemedian2(std::vectorx){doublemedian;size_tsize=x.size();sort(x.begin(),x.end());if(size%2==0){median=(x[size/2-1]+x[size/2])/2.0;}else{median=x[size/2];}returnmedian;}如果我随后将性能与标准内置R中值函数进行比较,我将通过microbenchmark获得以下结果>x=rnorm(100)>microbenchmark(m

c++ - Rcpp 代码使 R 崩溃

我有以下C++代码:NumericVectortestFromontcpp(NumericMatrixz1,NumericMatrixz2,intNbootstrap){intdim1=z1.nrow();intdim2=z2.nrow();intdimension=z1.ncol();intN=dim1+dim2;NumericVectorTKeps(Nbootstrap+1);cout我用Rcpp包运行它:sourceCpp("...")。如果z1.size()小于500,它会很好地工作。但是对于更大的尺寸,它会在打印第二个“toto”之前崩溃并关闭R。我想知道:我是不是做错了什么

c++ - 从 VC++ 调用 R 函数

我需要在我的C++代码中运行R的统计函数。有没有办法从我的C++代码中调用它们?我正在使用VS2005,是否需要包含任何头文件或链接任何库?我使用他们网站上提供的标准Windows安装程序安装了R。问候, 最佳答案 简要说明:正如经常提到的那样,R本身并不在VS*使C代码和C++代码的链接变得困难但可能不可能(因为函数头信息没有标准化)。鉴于标准,Rcpp和RInside在Windows上都能完美运行Windows工具链。(RInside确实有一个错误,但现在已修复。)RcppFAQ有更多关于VS*的内容(即你不能指望这个如果R本身

c++ - 如何使用 RcppEigen 获取矩阵的行列式

我是Rcpp的新手。我正在尝试使用R包RcppEigen来获取矩阵的行列式。以下代码保存在一个文件中,我使用sourceCpp来使用它。我用sourceCpp的时候没有编译错误。在R中使用getDeterminant(A)时,A是一个矩阵。它总是提示以下错误。"Error:couldnotfindfunction"getDeterminant""但是,getEigenValues运行良好。如果有人愿意帮助我,我将不胜感激。非常感谢!#include//[[Rcpp::depends(RcppEigen)]]usingEigen::Map;//'maps'ratherthancopies