rcpp相关内容

如何保护 R 中的矩阵不被 Rcpp 更改?

我正在制作一个包含两个 Rcpp 函数的包.第一个函数用于创建一个矩阵,该矩阵将被第二个函数多次使用.在调用这两个函数之间,矩阵存储在 R 的全局环境中. M 根据输入参数,第二个函数将对输入矩阵(由第一个函数创建)进行更改,然后从中计算向量(aFunction 是 mySecondRcpp()): IntegerVector aFunction( SEXP Qin, SEXP param ..
发布时间:2021-07-03 18:46:47 其他开发

使用外部指针的并行化函数 (XPtr)

这个问题既不是这个问题的重复,也不是这个,是关于返回外部指针的函数. 问题来了.此后的 Rcpp 代码定义了两个函数,一个创建 XPtr,另一个可以在 XPtr 上工作. #include 使用命名空间 Rcpp;//[[Rcpp::export]]SEXP f(int n) {std::vector* v = 新的 std::vector;for(int i = 0; i push_ba ..
发布时间:2021-07-03 18:46:44 其他开发

Rcpp:无法打开共享对象文件

我正在尝试开发一个 R 包,它使用了 Arrayfire,感谢 Rcpp图书馆.我已经开始编写示例代码(让我们将其命名为 hello_world.cpp),如下所示: #include //[[Rcpp::export]]bool test_array_fire(){af::randu(1, 4);返回真;} 然后,我尝试使用 sourceCpp 函数来编译它 Rcpp::sourceCpp ..
发布时间:2021-07-03 18:46:41 其他开发

相当于 Rcpp 中的“哪个"函数

我是 C++ 和 Rcpp 的新手.假设,我有一个向量 t1 并且我想获得 NA 的 t1 元素的索引.我可以写: NumericVector retIdxNA(NumericVector x) {//第一步:获取NA在向量中的位置逻辑向量 y=is_na(x);//步骤2:统计NA的数量int Cnt=0;for (int i=0;i ..
发布时间:2021-07-03 18:46:38 其他开发

rcpp sourceCpp 编译器设置

我正在使用 Rcpp 来加速一个在 R(3.4、Windows7)中被重复调用的函数,我希望更改编译器设置. 当我打电话时:sourceCpp("scoreseq1.1.cc", verbose=TRUE) 部分输出如下: C:/RBuildTools/3.4/mingw_64/bin/g++ -I"C:/PROGRA~1/R/R-34~1.1/include" -O2 -Wal ..
发布时间:2021-07-03 18:46:32 其他开发

如何在 RCpp 中向数据框添加新列?

我正在尝试使用 RCpp 向数据框中添加一个新列. 在下面的代码中,我打算向数据框 df 添加一个“结果"列.但是运行代码后数据集没有“结果"列.你能告诉我他们有什么问题吗? R 文件调用 AddNewCol() 函数. 库(Rcpp)sourceCpp('AddNewCol.cpp')AddNewCol( df ,"结果") AddNewCol.cpp #include #in ..
发布时间:2021-07-03 18:46:29 其他开发

Rcpp 函数比 Rf_eval 慢

我一直在开发一个包,该包使用 Rcpp 将任意 R 代码应用于一组大型医学成像文件.我注意到我的 Rcpp 实现比原始的纯 C 版本慢得多.我追踪了通过 Function 调用函数与原始 Rf_eval 的区别.我的问题是为什么会出现接近 4 倍的性能下降,有没有办法加快函数调用的速度,使其在性能上更接近 Rf_eval? 示例: 库(Rcpp)图书馆(内联)图书馆(微基准)cpp_fun ..
发布时间:2021-07-03 18:46:26 其他开发

Rcpp 中 pow 的矢量化指数

Rcpp 允许向量化一些操作,这很棒.但是对于 pow,只有基数可以是向量,而不是指数.通常,在编译时: #include 使用命名空间 Rcpp;//[[Rcpp::export]]NumericVector puissancedCpp(NumericVector base, double exp){返回战俘(基地,exp);} 有效但无效: #include 使用命名空间 Rcpp;// ..
发布时间:2021-07-03 18:46:23 其他开发

无法在 Windows 7 上使用 Rcpp 从源代码编译

我正在 Windows 7 虚拟机上运行 R 3.3 的新安装,并尝试安装我自己的使用 Rcpp 的 R 包.该软件包可在 GitHub 上获得.我已经安装了 Rtools 以及 Rcpp 和 devtools 使用devtools::install_github("pbsag/tcadr"): >devtools::install_github("pbsag/tcadr")下载 GitH ..
发布时间:2021-07-03 18:46:20 其他开发

dmvnorm MVN 密度 - RcppArmadillo 实现比 R 包慢,包括一些 Fortran

解决方案现已在Rcpp Gallery 我从 RcppArmadillo 的 mvtnorm 包中重新实现了 dmvnorm.我以某种方式喜欢犰狳,但我想它也适用于普通的 Rcpp.dmvnorm 的方法基于马氏距离,所以我有一个函数,然后是多元正态密度函数. 让我向您展示我的代码: #include #include //[[Rcpp::depends("RcppArmadillo ..
发布时间:2021-07-03 18:46:17 其他开发

R 重新编译包失败,因为失败

在我的 linux 集群上,我无法重新编译需要重新编译的 R 包在最新版本中删除了 libRcpp.so.最终目标是让 R 包 DEseq2 运行.我们安装了新版本/opt/bin 目录下的 g++ 在 /opt/lib64 中有新的库.我有还创建了具有以下指令的 .R/Makevars: CXX=/opt/bin/g++ -Wl,-rpath,/opt/lib64 -Wl,-L,/opt/li ..
发布时间:2021-07-03 18:46:14 其他开发

将 Rcpp 链接到 interp2d(GSL 类型库)

我需要一些帮助来解决在我没有管理员权限的 Linux 系统上安装 Rcpp 包时遇到的链接器错误.简而言之,我收到此错误: 重新定位R_X86_64_32针对`.rodata'不能在创建共享对象时使用;用 -fPIC 重新编译 我有一个使用外部库 interp2d 的文件 solve.cpp,它又具有 GSL 依赖性.我通过 [[Rcpp::depends(RcppArmadillo, ..
发布时间:2021-07-03 18:46:11 其他开发

使用 sourceCpp() 在 Rcpp 和 RcppArmadillo 中出错

我对 C++ 还很陌生,但在 R 上花了很多时间.我正在尝试使用 RcppArmadillo,其中 .cpp 文件是使用 sourceCpp 函数获取的.我的示例代码来自 http://lists.r-forge.r-project.org/pipermail/rcpp-devel/2013-June/006150.html 并显示如下: #include 使用命名空间 Rcpp ; ..
发布时间:2021-07-03 18:46:09 其他开发

在 Rcpp 中访问命名列表元素

我想通过 Rcpp 中的名称访问命名列表元素 在 R >b = 列表(bgroups=c(1,1,1,1,1,0,0,0,0,0))>b$bgroups[1] 1 1 1 1 1 0 0 0 0 0 然后当试图在 Rcpp 中访问它时我试过了: cppFunction("void f(List & b){std::vectorc(10) = as>b[ ..
发布时间:2021-07-03 18:46:06 其他开发

向 Rcpp::DataFrame 添加列正在回退到列表

当我使用 Rcpp 向数据帧添加一列时,它在返回后不再呈现为数据帧.我试图尽可能接近添加列的原始示例,但无论我如何对其进行变异,我都会得到一个列表. 如下所示,当我通过分配给新键或使用 push_back() 添加列时,我丢失了对象的类和一些重要属性. Runnable reprex 此处,或复制下面的输出 fun ..
发布时间:2021-07-03 18:46:03 其他开发

通过 RCpp 返回 NA

这里的新手 RCpp 问题:如何使 NumericVector 返回 NA 到 R?例如,假设我有一个 RCpp 代码,它将 NA 分配给向量的第一个元素. //[[RCpp::export]]NumericVector myFunc(NumericVector x) {NumericVector y=clone(x);y[0]=不适用;// ..
发布时间:2021-07-03 18:46:00 其他开发

使用 Rcpp 的斐波那契数列的意外结果

我刚刚开始使用 Rcpp 很抱歉,如果我错过了一个简单的步骤或类似的东西...我已经从 ?sourceCpp 尝试过这个> 库(Rcpp)sourceCpp(代码="#include //[[Rcpp::export]]int fibonacci(const int x) {如果(x == 0)返回(0);如果(x == 1)返回(1);返回 (fibonacci(x - 1)) + fibon ..
发布时间:2021-07-03 18:45:57 其他开发

Rcpp 子集 DataFrame 的行

我希望使用 Rcpp 包创建 iris 数据集的以下子集: head(subset(iris, Species == "versicolor"))萼片.长度 萼片.宽度 花瓣.长度 花瓣.宽度 种类51 7.0 3.2 4.7 1.4 杂色52 6.4 3.2 4.5 1.5 杂色53 6.9 3.1 4.9 1.5 杂色54 5.5 2.3 4.0 1.3 杂色55 6.5 2.8 4.6 1 ..
发布时间:2021-07-03 18:45:51 其他开发

在 Rcpp 中 - 如何返回带有名称的向量

假设我有以下矩阵: testM 这个矩阵有列名 V1 到 V6 假设有另一个矩阵,我删除了列名: >testM2 然后,如果我在 testM 和 testM2 上尝试 colMeans 在这两种情况下都返回一个 numeric 类,除了在第一种情况下,答案有 colnames. >colMeans(testM)V1 V2 V3 V4 V5 V62.166667 2.333333 ..
发布时间:2021-07-03 18:45:48 其他开发