jjzjj

c++ - 在 R 中使用 C++ 编译错误 : "RcppArmadillo.h: No such file or directory"

$exportPKG_CPPFLAGS=`Rscript-e'Rcpp:::CxxFlags()'`$exportPKG_LIBS=`Rscript-e'Rcpp:::LdFlags()'`$RCMDSHLIBmy.cppg++-I/usr/share/R/include-DNDEBUG-I/usr/local/lib/R/site-library/Rcpp/include-fpic-g-O2-fstack-protector--param=ssp-buffer-size=4-Wformat-Wformat-security-Werror=format-security-D_FORTI

c++ - 简单 Rcpp 函数中的内存泄漏

我正在用R开发一个包,我想将其转换为Rcpp以获得更好的性能。我是Rcpp(和一般的C++)的新手。我的问题是,如果我使用一组参数多次运行它,我编写的Rcpp函数可以正常工作,但是如果我尝试在许多参数组合上循环它,它会引发内存泄漏并导致Rsession中止。这是R中的代码,它可以很好地满足我对其进行的任何测试:raw_noise这里是Rcpp中的代码,使用了三个Rcppsugarfunctions(pow,sqrt,rnorm):NumericVectorraw_noise(inttimesteps,doublemu,doublesigma,doublephi){doubledelta

c++ - 将 rcpp 变量转换为标准 C++ 变量

我的输入是这样的:Rcpp::NumericMatrixdata(dataMatrix);Rcpp::NumericVectorxSize(dataXsize);Rcpp::NumericVectorySize(dataYsize);Rcpp::NumericVectortIndexes(testIndexes);Rcpp::NumericVectorcIndexes(controlIndexes);我尝试调用的外部库有这个签名WilcoxonTest(float*_data,int_dataXsize,int_dataYsize,vector*_testIndexes,vector*

c++ - 如何使用 R 和 Rcpp 删除 NumericVector 中的元素以进行递归

我试图了解更多关于如何使用Rcpp包的R。所以我开始使用Rcpp测试基本的排序算法。我从HadleyWickham教程开始here.我通过这种方式成功地实现了插入排序:library(Rcpp)vetor1){insertionsortRC(vetor,n-1);aux=vetor[n-1];i=n-1;while(vetor[i-1]>aux&&i>=0){vetor[i]=vetor[i-1];i--;}vetor[i]=aux;}returnvetor;}")但是这个函数需要2个参数,然后我尝试这样:cppFunction("NumericVectorinsertionsortR

c++ - std0x 和非 std0x 之间的 Rcpp 不一致

我发现在使用和不使用-std=c++0x编译的Rcpp之间存在奇怪的不一致。考虑表达式Functiondata_frame("data.frame");GenericVectora;a.push_back("17");returndata_frame(a,_["stringsAsFactors"]=0);(编者注:在Rcpp中对DataFrame的强制转换实际上向下转换为R函数,但不允许用户设置该标志。)在“旧”C++(未设置-std=c++0x)中,此代码有效。在现代C++中(w/-std=c++0x设置),这失败了,说“不能将类“pairlist”强制转换为data.frame”。

c++ - 如何在 R 包之间共享基于 Rcpp 的库中的 C++ 函数?

我正在用Rcpp开发一个简单的库来构建霍夫曼树。它有一个工作的R接口(interface),我可以从其他包调用,但我也想直接从我正在开发的其他基于Rcpp的包中的C++代码调用C++函数。我已经想出如何将第一个包的header放在inst/include目录中,以便它在第二个包中可用。但是,当在第二个包的NAMESPACE文件中调用useDynLib以加载调用第一个包中的函数的C++代码时,我得到函数的undefinedsymbol错误I我正在尝试使用。我在Import、Depends和LinkingTo下的第二个包的DESCRIPTION文件中列出了第一个包。这是我第一次尝试做任何基

c++ - 将 R 函数作为参数传递给 RCpp 函数

我正在尝试运行类似的东西Rmy_r_functionCPP#includeusingnamespaceRcpp;//[[Rcpp::export]]NumericVectorRunFunction(NumericVectora,Functionfunc){NumericVectorb=NumericVector(a.size());for(inti=0;i我如何让“Functionfunc”在Rcpp中实际工作?附言我知道有很多方法可以在没有Rcpp的情况下执行此操作(此示例想到了apply),但我只是以此为例来演示我在寻找什么。 最佳答案

c++ - 在 R 中定义一个矩阵并将其传递给 C++

我在R中定义了一个矩阵。我需要将该矩阵传递给C++函数并在C++中执行操作。示例:在R中,定义一个矩阵,A我需要将此矩阵传递给C++函数,其中变量“数据”的类型为vector>将用矩阵A初始化。我似乎不知道该怎么做。我正在以比我应该的更复杂的方式思考,我敢打赌有一种简单的方法可以做到这一点。 最佳答案 正如保罗所说,我建议使用Rcpp对于那种事情。但这也取决于你想要什么vector>意思是假设你想存储列,你可以像这样处理你的矩阵:require(Rcpp)require(inline)fx>vec(nc);for(inti=0;i>

c++ - 来自 Rcpp 的 sourceCpp 在规范示例中给出了奇怪的编译错误

我收到以下奇怪的错误:>sourceCpp("comp.Cpp")Warningmessage:InsourceCpp("comp.Cpp"):NoRcpp::exportattributesorRCPP_MODULEdeclarationsfoundinsource当我使用sourceCpp时。“comp.Cpp”文件如下所示:#includeusingnamespaceRcpp;//[[Rcpp:export]]RcppExportSEXPcomp(intn){inti;Rcpp::NumericVectorproduct(n);for(i=0;i我尝试将我的操作系统更新到Mave

c++ - 从 ‘arma::umat’ 到 ‘arma::mat’ 的转换

code(m);arma::umata=trans(M)>M;arma::matN=a;returnRcpp::wrap(N);'coxFunc如何在Armadillo上将umat转换为mat?file53a97e398eed.cpp:33:error:conversionfrom‘arma::umat’tonon-scalartype‘arma::mat’requestedmake:***[file53a97e398eed.o]Error1谢谢, 最佳答案 另外两个答案已经暗示不存在直接转换。在Armawebsite上花一分钟建议