gpt4 book ai didi

r - 如何创建一个包含 20 多个条目的 Rcpp NumericVector?

转载 作者:行者123 更新时间:2023-12-04 11:49:11 27 4
gpt4 key购买 nike

创建包含 20 多个元素的 NumericVector 会导致错误消息。
这与本文档(在最底部)一致:http://statr.me/rcpp-note/api/Vector_funs.html

目前,我公开了一个类(使用 RCPP_MODULE),其中一个方法返回所需的 NumericVector。如何返回超过 20 个元素?

#include <Rcpp.h>
class nvt {
public:
nvt(int x, double y) {...}

NumericVector run(void) {
....
return NumericVector::create(_["a"]=1,_["b"]=2, .....,_["c"]=21);
}
};

RCPP_MODULE(nvt_module){
class_<nvt>("nvt")
.constructor<int,double>("some description")
.method("run", &nvt::run,"some description")
;
}

最佳答案

创建具有您需要的大小的向量,然后分配值和名称。这是一个 Rcpp“内联”函数(人们更容易尝试),但它可以在您的上下文中工作:

library(Rcpp)
library(inline)

big_vec <- rcpp(body="
NumericVector run(26);
CharacterVector run_names(26);

# make up some data
for (int i=0; i<26; i++) { run[i] = i+1; };

# make up some names
for (int i=0; i<26; i++) { run_names[i] = std::string(1, (char)('A'+i)); };

run.names() = run_names;

return(run);
")

big_vec()
## A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

关于r - 如何创建一个包含 20 多个条目的 Rcpp NumericVector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33541104/

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