小编Ber*_*riJ的帖子

在 Rcpp (Armadillo) 函数中使用数字序列作为默认参数

我需要这个来完成一个更大的项目,但我认为这个最小的代表可以最好地解释它。我在 R 中有以下函数:

test <- function(x = 2^(1:9)) {
    x
}
test()
#> [1]   2   4   8  16  32  64 128 256 512
Run Code Online (Sandbox Code Playgroud)

这工作正常。但是,我想使用 Rcpp Armadillo 将其转换为 Rcpp。我使用以下 test.cpp 文件尝试了此操作:

// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>
using namespace arma;

// [[Rcpp::export]]
vec test(const vec &lambda = arma::exp2(arma::linspace(1, 9, 9)))
{
    return lambda;
}
Run Code Online (Sandbox Code Playgroud)

但是使用编译它Rcpp::sourceCpp("functions/test.cpp")会产生一个警告:

警告消息:无法解析函数 test 的参数 lambda 的 C++ 默认值 'arma::exp2(arma::linspace(1, 9, 9))'

并且默认参数不起作用(调用test())。

预先非常感谢。

c++ r rcpp rcpparmadillo

4
推荐指数
1
解决办法
283
查看次数

R 正则表达式问题:“-\\s[AZ]”小写匹配的大写字母并删除破折号+空格

假设你有一个字符串:“Stack- Overflow”

我想小写前面带有破折号和空格的大写字符,并删除破折号和空格。

到目前为止,我能够使用正则表达式来匹配模式。但是我如何才能在不手动执行此操作的情况下小写该字符呢?

c("Stack- Overflow") %>% str_replace_all("-\\s[A-Z]", "o")
Run Code Online (Sandbox Code Playgroud)

太感谢了。

regex replace r match

2
推荐指数
1
解决办法
1636
查看次数

标签 统计

r ×2

c++ ×1

match ×1

rcpp ×1

rcpparmadillo ×1

regex ×1

replace ×1