带有犰狳数据的类

问题描述

最初,我将一些数据从 R 直接导入到 C++ 函数中,如下所示:

#include <RcppArmadillo.h>
using namespace Rcpp;
// [[Rcpp::depends(RcppArmadillo)]]

List gibbs(List dat) {
  int N = dat["N"];
  arma::vec y = dat["y"];
  ...
}

最终,我需要的不仅仅是 N 和 y(input_data 列表有许多我需要导入的单独向量和矩阵)。所以,我认为创建一个类 Data 来存储所有输入变量并在构造函数中自动进行一些预处理是一个好主意。类似的东西

#include <RcppArmadillo.h>
using namespace Rcpp;
// [[Rcpp::depends(RcppArmadillo)]]

class Data {  
public:
  int N;  
  arma::vec y;
  // other data

  Data(List input_data) {
    N = input_data["N"];
    y = input_data["y"];
    // pre-processing steps
  }
};

然而,这行不通。它给出了以下错误:

object_LocLev.cpp:12:7: error: use of overloaded operator '=' is ambiguous (with operand types 'arma::vec' (aka 'Col<double>') and 'Rcpp::Vector<19>::NameProxy' (aka 'generic_name_proxy<19>'))
y = input_data["y"];
~ ^ ~~~~~~~~~~~~~~~

我的问题是为什么会出现这个错误?有没有更好的分配 y 的方法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...