У меня есть программа, написанная на C++, которая вычисляет значения для функции правдоподобия, которая опирается на количество данных. Я хочу, чтобы иметь возможность вызывать функцию из R для запроса значений функции (расчеты потребовали бы много времени в R, а программа на C++ уже давно должна была его изменить, это примерно 150K строк кода).Связь между R и C++
Я могу сделать это, чтобы запросить одно значение, но тогда приложение C++ завершается, и я должен перезапустить его и снова загрузить все данные (это сделало это с помощью .c()
). Загрузка занимает от 10 до 30 секунд, в зависимости от модели для функции правдоподобия и данных, и я думал, есть ли способ сохранить приложение C++ в ожидании запросов значений функций, поэтому у меня нет для чтения всех данных в память. Уже вычисление одного значения функции в приложении C++ занимает около полусекунды, что очень долго для C++.
Я думал об использовании pipe()
, чтобы спросить вас, является ли это возможным вариантом, или я должен использовать какой-либо другой метод? Можно ли это сделать с помощью rcpp?
Я делаю это, чтобы проверить алгоритмы минимизации для R для этой функции.
Может быть, посмотрите на Rcpp? http://cran.r-project.org/web/packages/Rcpp/index.html – juba
Не может быть просто система («R Stuff»); от C++? Он похож на этот: [C вызов команды cmd] (http://stackoverflow.com/questions/5007268/call-linux-command-from-c-program) [Пример R] (http://stackoverflow.com/ вопросы/18306362/run-r-script-from-command-line) – alap
трубы выглядят как вероятное решение, или, может быть, tcp-сервер? – 4pie0