设置元素名称Rcpp错误堆栈的用法

问题描述 投票:0回答:1

在rcpp中,我想创建characterVector,并将矢量变量设置为字符元素

我尝试过

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
CharacterVector assignName(){
    CharacterVector rn={"a","b","c"};
    rn.names()=rn;

    return rn;
}

/***R
assignName()
m <- assignName()
m
*/

例如,我有一个CharacterVector rn作为a,b,c。rn应该设置为:a =“ a”,b =“ b”,c =“ c”

然后在R中将此函数调用为:]之后

m<-assignName()

发生错误:

Error: C stack usage 7969212 is too close to the limit 

但是如果我不将函数分配给变量,则所有工作有效,例如,如果我这样做:

>assignName()
 a  b  c
"a""b""c"

在rcpp中,我想创建characterVector,将矢量变量设置为字符元素,我尝试使用#include 使用名称空间Rcpp; // [[[Rcpp :: export]] CharacterVector ...

r rcpp
1个回答
0
投票

我不确定为什么会这样,但是使用向量本身作为名称似乎不是一个好主意。您可以使用Rcpp::clone

© www.soinside.com 2019 - 2024. All rights reserved.