首页 > 解决方案 > Rcpp:使用 igraph 函数时出现明显错误

问题描述


我对 Rcpp 很陌生。抱歉,如果我遗漏了一些明显的东西。
但是当我尝试在 Rcpp 中使用 igraph 函数时,我在左侧遇到以下明显错误:
“无法使用 'const char[15 ]'
这里是代码

#include <Rcpp.h>
// [[Rcpp::plugins(cpp11)]]
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector insideOfCommEdgeIdsCpp(CharacterVector g, CharacterVector v) {
Environment igraph("package:igraph");
Function game_er = igraph["erdos.renyi.game"];
Function get_adjacency = igraph["get.adjacency"];
}

标签: rfunctionigraphrcpp

解决方案


您的文件中有一些小错误:

  • 声明为NumericVector但不返回任何内容
  • Environment igraph未正确设置。

修正版如下。值得重复一遍:从 C++ 调用的任何 R 函数仍然是以 R 函数的速度运行的 R 函数。

更正的代码

#include <Rcpp.h>
// [[Rcpp::plugins(cpp11)]]
using namespace Rcpp;
// [[Rcpp::export]]
void insideOfCommEdgeIdsCpp(CharacterVector g, CharacterVector v) {
  Environment igraph = Environment("package:igraph");
  Function game_er = igraph["erdos.renyi.game"];
  Function get_adjacency = igraph["get.adjacency"];
}

推荐阅读