Если я создам фрейм данных в R, я могу удалить один из столбцов следующим образом:
testset[,-7] # drops the 7th column
Хотя я могу создать фрейм данных с помощью JRI, я не могу выполнить ту же операцию с помощью Java:
REXP df = REXPGenericVector(new RList(new REXP[] { ... })); //details left out
// REngine previously contructed
engine.assign("testset",df); // works
engine.parseAndEval("testset"); // works, returns an REXP with the data frame I just created
engine.parseAndEval("testset[,-7]"); // broken, returns org.rosuda.REngine.REXPNull
Точно так же, если я реплицирую код, который у меня есть в R, с помощью простых операторов parse/eval, они, похоже, не работают с некоторыми операторами. Ниже приведен пример обучения/прогноза машины опорных векторов.
engine.parseAndEval("svm.model <- svm(Class ~ ., data = trainset, cost = 100, gamma = 1)");
engine.parseAndEval("svm.pred <- predict(svm.model, testset_noclass)"); // testset_noclass same as testset, except without a column
REXP r = engine.parseAndEval("svm.pred"); // r is a org.rosuda.REngine.REXPNull