我的程序处理群集.除数据集外,用户还必须指定有关集群的一些细节.有两种方法可以解决这个问题:指定群集数量或准备群集描述列表.
args <- list(dataset=points, K=5)
args <- list(dataset=points, clusters=list(
list(type="spherical",radius=4),
list(type="covariance",covMat=matrix)
)
Run Code Online (Sandbox Code Playgroud)
接下来你用R中的args作为参数调用正确的函数(我的程序).
classification <- CEC(args)
Run Code Online (Sandbox Code Playgroud)
我想像下面这样准备CEC
SEXP CEC(SEXP args) {
Rcpp::List list(args);
arma::mat dataset = Rcpp::as<arma::mat>(list["dataset"]);
if(list.contains("K")) {
//something
} else if(list.contains("clusters")) {
//something
}
}
Run Code Online (Sandbox Code Playgroud)
我找不到任何API列表或示例如何做到这一点.而且,我研究Rcpp的标题但是List的定义typedef Vector<VECSXP> List ;几乎没有帮助.
有什么我可以用而不是list.contains()吗?
Rom*_*ois 11
你可能正在寻找这种containsElementNamed方法:
Rcpp::List list(args);
if( list.containsElementNamed("K") ){
// something
} else {
// something else
}
Run Code Online (Sandbox Code Playgroud)
https://github.com/RcppCore/Rcpp/blob/master/inst/include/Rcpp/vector/Vector.h#L584
| 归档时间: |
|
| 查看次数: |
781 次 |
| 最近记录: |