我需要这个来完成一个更大的项目,但我认为这个最小的代表可以最好地解释它。我在 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())。
预先非常感谢。
假设你有一个字符串:“Stack- Overflow”
我想小写前面带有破折号和空格的大写字符,并删除破折号和空格。
到目前为止,我能够使用正则表达式来匹配模式。但是我如何才能在不手动执行此操作的情况下小写该字符呢?
c("Stack- Overflow") %>% str_replace_all("-\\s[A-Z]", "o")
Run Code Online (Sandbox Code Playgroud)
太感谢了。