R cpp: очевидная ошибка при использовании функций igraph - PullRequest
0 голосов
/ 20 апреля 2020


Я новичок в R cpp. Извините, если я упускаю что-то очевидное.
, но когда я пытаюсь использовать функцию igraph в R cpp, я сталкиваюсь со следующей очевидной ошибкой слева:
"Невозможно инициализировать переменную типа 'R CPP: Environment' (иначе, 'int ') с lvalue типа' 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"];
}

1 Ответ

3 голосов
/ 20 апреля 2020

Несколько небольших ошибок в вашем файле:

  • объявлено как NumericVector, но ничего не возвращается
  • Environment igraph настроено неправильно.

Исправленная версия приведена ниже. И стоит повторить это: Любые функции R, вызываемые из C ++ , по-прежнему являются функциями 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"];
}
...