我想在NULL
函数中将参数的默认值设置为Rcpp
,如果参数不是NULL
,则基于该参数进行一些计算。这样的代码的一个例子是
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
int test_null(Nullable<DataFrame> p1 = R_NilValue){
if(p1.isNull()){
NumericMatrix T(2,2);
Rcout << T << std::endl;
}
else{
NumericMatrix T(p1.nrow());
Rcout << T << std::endl;
}
return (42);
}
但是,我无法编译此功能,并收到错误消息
error: no member named 'nrow' in 'Rcpp::Nullable<Rcpp::DataFrame_Impl<PreserveStorage> >'
这告诉我没有为nrow
定义Nullable DataFrame
。是否有其他方法可以为NULL
中的参数(即DataFrame
)实现默认的Rcpp
值,以便我可以计算DataFrame
的其他属性(编号,行,列等) ],而不是NULL
。
任何帮助将不胜感激!
谢谢!
SN248
你非常亲密。您错过了一个实例化:Nullable<>
与其模板类型还不相同-我们需要首先创建一个对象。
所以这是您的代码,其中包含正确的空格;-)以及缺少的行以及每种情况的测试调用: