gpt4 book ai didi

Rcpp 检查列表是否有一个元素

转载 作者:行者123 更新时间:2023-12-01 07:38:35 25 4
gpt4 key购买 nike

我的程序处理聚类。除了数据集,用户还必须指定一些有关集群的详细信息。有两种方法可以解决这个问题:指定集群数量或准备集群描述列表。

args <- list(dataset=points, K=5)
args <- list(dataset=points, clusters=list(
list(type="spherical",radius=4),
list(type="covariance",covMat=matrix)
)

接下来,您在 R 中使用 args 作为参数调用适当的函数(我的程序)。
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 的 header ,但是 typedef Vector<VECSXP> List ; 的 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

关于Rcpp 检查列表是否有一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22893428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com