首页 > 解决方案 > seq_len 在 rcpp 中无法识别

问题描述

我是 Rcpp 的新手,这可能是一个愚蠢的问题,但我似乎无法让 seq_len 在 rcpp 中工作,即使我知道它应该是Rcpp 具有的类似 R 的函数。这是我的代码:

cppFunction("NumericVector foo2(int n){
IntegerVector x = Rcpp::seq_len(n);
return x;
            }")

这会导致错误消息:“错误:从类型 'Vector<13>' 的返回值到函数返回类型 'Vector<14>' return x; 没有可行的转换;”

标签: rrcpp

解决方案


当我尝试您的代码时,编译器会抛出一个错误,指出 IntegerVector 无法在输出中转换为 NumericVector。然而,一个简单的改变:

Rcpp::cppFunction("IntegerVector foo2(int n){
IntegerVector x = Rcpp::seq_len(n);
return x;}")

不产生错误,我们得到:

foo2(3)
#> [1] 1 2 3

推荐阅读