Порядок размещения данных с использованием Rcpp & Dplyr - PullRequest
0 голосов
/ 13 июня 2018

первое сообщение на этом форуме, поэтому не стесняйтесь: -)

Я пытаюсь отсортировать фрейм данных, используя Rcpp / dplyr.Основываясь на более раннем посте от Romain - идея состоит в том, чтобы использовать класс OrderVisitor, как описано в этом посте.

упорядочить кадр данных по столбцу в Rcpp

Моя проблемаЯ не могу скомпилировать код MyFunc ниже, как определено в посте выше.

C ++:

enter code here

#include <Rcpp.h>
#include <dplyr.h>

using namespace Rcpp;
using namespace dplyr;

// [[Rcpp::export]]
// [[Rcpp::depends(dplyr)]]


DataFrame myFunc(DataFrame data, CharacterVector names) {
    OrderVisitors o(data, names ) ;
    IntegerVector index = o.apply() ;

    DataFrameVisitors visitors( data ) ;
    DataFrame res = visitors.subset(index, "data.frame" ) ;

    return res;  
}

Сообщение компиляции RStudio:

sessioninfo :: session_info () ─Информация о сессии ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── значение настройки
версия R версия 3.4.1 (2017-06-30) для ОС Windows 7 x64 SP 1
система x86_64, mingw32
ui RStudio
language (EN)
collate English_Соединения.1252
tz Австралия / Сидней
дата 2018-06-13

─ Пакеты ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── пакет * версия даты источник
clisymbols 1.2.0 2017-05-21 CRAN (R 3.4.4) sessioninfo 1.0.0 2017-06-21 CRAN (R 3.4.4) с 2.1.2 2018-03-15 CRAN (R 3.4.4) yaml 2.1.14 2016-11-12 CRAN (R 3.4.1)

Rcpp:: sourceCpp ('C: /temp/test.cpp') c: /RBuildTools/3.4/mingw_64/bin/g++ -I "C: /PROGRA~1/R/R-34~1.1/include" -DNDEBUG -I "C: /PROGRA~1/R/R-34~1.1/library/Rcpp/include" -I "C: /PROGRA~1/R/R-34~1.1/library/dplyr/include" -I "C: /PROGRA~1/R/R-34~1.1/library/BH/include "-I" C: / temp "-I" d: /Compiler/gcc-4.9.3/local330/include "-O2 -Стена -mtune = core2 -c test.cpp -o test.o В файле, включенном в C: /PROGRA~1/R/R-34~1.1/library/dplyr/include/dplyr.h: 4: 0 из test.cpp: 2: C: /PROGRA~1/R/R-34~1.1/library/dplyr/include/dplyr/main.h: 11: 19: фатальная ошибка: plogr.h: Нет такого файла или каталога #include ^ компиляция прекращена.make: *** [test.o] Ошибка 1 Предупреждающее сообщение: выполняется команда 'make -f "C: /PROGRA~1/R/R-34~1.1/etc/x64/Makeconf" -f "C: / PROGRA~ 1 / R / R-34 ~ 1.1 / share / make / winshlib.mk "SHLIB_LDFLAGS = '$ (SHLIB_CXXLDFLAGS)' SHLIB_LD = '$ (SHLIB_CXXLD)' SHLIB =" sourceCpp_2.dll "WIN = 64 TCLBIN = 64 ОБЪЕКТОВ =«test.o» 'имел статус 2 Ошибка в Rcpp :: sourceCpp («C: /temp/test.cpp»): Ошибка 1 при создании общей библиотеки.

, так что я хочу знатьэто:

  1. Есть идеи, как правильно скомпилировать код выше?Любые проблемы с plogr?

  2. Любой другой эффективный способ достижения того же результата, используя Rcpp?

Спасибо.

MSW

1 Ответ

0 голосов
/ 13 июня 2018

Как сказал Ральф, вам может понадобиться добавить другие зависимости.

В этом случае вам понадобятся все эти: // [[Rcpp::depends(dplyr, plogr, bindrcpp)]].

...