RInside: невозможно прочитать R[R.version.string] как строку

Я пытаюсь прочитать значение R.version.string с помощью оператора []. В результате выбрасывается исключение. Вместо этого с R.parseEval("R.version.string") все в порядке. Ниже приведен пример измененного файла rinside_sample0.cpp, показывающий проблему.

#include <RInside.h>                    // for the embedded R via RInside

int main(int argc, char *argv[]) {

    RInside R(argc, argv);              // create an embedded R instance 

    try {
    std::string versionKO = R["R.version.string"];
    } catch(std::exception& ex) {
    std::cerr << "Exception caught: " << ex.what() << std::endl;
    } catch(...) {
    std::cerr << "Unknown exception caught" << std::endl;
    }

    std::string versionOK = R.parseEval("R.version.string");
    std::cout << versionOK << std::endl;

    R["txt"] = "Hello, world!\n";   // assign a char* (string) to 'txt'

    R.parseEvalQ("cat(txt)");           // eval the init string, ignoring any returns

    exit(0);
}

Полученный результат:

Exception caught: expecting a string
R version 3.1.2 (2014-10-31)
Hello, world!

person Jorge    schedule 27.11.2014    source источник
comment
Пожалуйста, НЕ ДУБЛИРУЙТЕ ПУБЛИКАЦИИ. Я только что ответил и закрыл ваш запрос на GitHub. В вашем вопросе нет проблем, за исключением того, что вы ошибочно полагаете, что первый подход должен работать. Не будет, и это не баг...   -  person Dirk Eddelbuettel    schedule 27.11.2014


Ответы (1)