Я пытаюсь использовать пакет mixl
в R для моделирования дискретного выбора. mixl
включает в себя прекомпилятор, который принимает спецификацию модели, написанную в виде простого текста, и преобразует ее в служебную функцию C ++, вызываемую из R.
Я запускаю R в Windows 10. Я установил Rtools
успешно и добавил исполняемый путь R ( C: \ Program Files \ R \ R-3.6.1 \ bin ) в список переменных среды.
> find_rtools()
[1] TRUE
> install.Rtools(check = T)
No need to install Rtools - You've got the relevant version of Rtools installed
Я установил *Пакет 1011 *, но при выполнении следующего кода
library(mixl)
data("Train", package = "mlogit")
Train$ID <- Train$id
Train$CHOICE <- as.numeric(Train$choice)
mixl_test <- "
ASC_B_RND <- @ASC_B + draw_1*@SIGMA_B;
TIME_A_RND <- @B_timeA + draw_2*@SIG_time;
TIME_B_RND <- @B_timeB + draw_2*@SIG_time;
U_PT <- @B_price*$price_A/1000 + TIME_A_RND*$time_A/60 + @B_change*$change_A;
U_Car <- ASC_B_RND + (@B_price*$price_B/1000 + TIME_B_RND*$time_B/60);
"
model_spec <- specify_model(mixl_test, Train)
появляется следующее сообщение об ошибке.
> C:/Rtools/mingw_64/bin/g++ -std=gnu++11 -I"C:/PROGRA~1/R/R-36~1.1/include" -DNDEBUG -I"C:/Users/takaa/Documents/R/win-library/3.6/mixl/include" -I"C:/Users/takaa/Documents/R/win-library/3.6/Rcpp/include" -I"C:/Users/takaa/AppData/Local/Temp/RtmpOks2bQ/sourceCpp-x86_64-w64-mingw32-1.0.2" -fopenmp -O2 -Wall -mtune=generic -c file2fbc33473a13.cpp -o file2fbc33473a13.o
file2fbc33473a13.cpp: In function 'void utilityFunction(Rcpp::NumericVector, UF_args2&)':
file2fbc33473a13.cpp:127:1: error: 'ASC_B_RND' was not declared in this scope
ASC_B_RND <- ASC_B + draw[0]*SIGMA_B;
> ^
>
> file2fbc33473a13.cpp:128:1: error: 'TIME_A_RND' was not declared in this scope
TIME_A_RND <- B_timeA + draw[1]*SIG_time;
>
> ^
>
> file2fbc33473a13.cpp:129:1: error: 'TIME_B_RND' was not declared in this scope
TIME_B_RND <- B_timeB + draw[1]*SIG_time;
>
> ^
>
> make: *** [C:/PROGRA~1/R/R-36~1.1/etc/x64/Makeconf:215:
> file2fbc33473a13.o] Error 1
>
> Error in Rcpp::sourceCpp(code =
> e1$cpp_code, env = cpp_container) : Error 1 occurred building
> shared library.
>
Я считаю, что вопросы похожи на [ Ошибка 1 при создании общегобиблиотека при поиске кода cpp внутри R и [https://github.com/aidenlab/straw/issues/20][2], но я перезагрузил Rstudio и Windows (и ничего не изменилось), и по второму вопросу мне следует изменить значение -std=c++11
с -std=gnu++11
? Кто-нибудь сталкивался с подобной проблемой, в чем здесь проблема?
R версия 3.6.1 (2019-07-05) - «Действие пальцев» Copyright (C) 2019 Фонд R для статистических вычислений: x86_64-w64-mingw32 / x64 (64-разрядная версия))
Спасибо!