R でデータ フレームを作成すると、次のように列の 1 つを削除できます。
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
同様に、単純な parse/eval ステートメントを使用して R にあるコードを複製すると、特定のステートメントで失敗するように見えます。以下は、サポート ベクター マシンのトレーニング/予測の例です。
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