我的程序涉及聚类。除了数据集之外,用户还必须指定一些有关集群的详细信息。有两种方法可以解决此问题:指定集群数量或准备集群描述列表。
args <- list(dataset=points, K=5)
args <- list(dataset=points, clusters=list(
list(type="spherical",radius=4),
list(type="covariance",covMat=matrix)
)
接下来,您使用 args 作为参数调用 R 中的正确函数(我的程序)。
classification <- CEC(args)
我想准备如下的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
}
}
我找不到任何 List 的 API 或示例如何做到这一点。此外,我研究了 Rcpp 的标题,但是 List 的定义是typedef Vector<VECSXP> List ;
几乎没有帮助。
有什么我可以用的来代替list.contains()
?
您可能正在寻找containsElementNamed
方法:
Rcpp::List list(args);
if( list.containsElementNamed("K") ){
// something
} else {
// something else
}
https://github.com/RcppCore/Rcpp/blob/master/inst/include/Rcpp/vector/Vector.h#L584 https://github.com/RcppCore/Rcpp/blob/master/inst/include/Rcpp/vector/Vector.h#L584
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)