Я использую JRI и вызываю сценарий R из Java. Скрипт R возвращает целое число. Ниже показано, как я вызываю сценарий R:
REXP result = rengine.eval("source(\"" + [script name with path] + "\")");
REXP retVal = rengine.eval(getReturnVariable());
Ниже приведен соответствующий код в R-скрипте:
retVal<-sum(num1, num2)
return(as.integer(retVal))
Вызывающий код Java должен иметь возможность вызывать любой R-скрипт. Сценарий может возвращать различные типы данных, поэтому мне нужно посмотреть на возвращаемый тип, чтобы извлечь результат.
В вызывающей программе Java, когда я проверяю «retVal», я вижу, что есть следующие 2 атрибута:
- rtype — значение 13 (INTSXP)
- Xt, возвращаемый функцией gettype(), для которого установлено значение 32 (XT_ARRAY_INT).
У меня вопрос - какой из вышеперечисленных типов должен смотреть вызывающая программа?
Также помогут любые указатели на любые сопоставления между типами данных R и Java.
Я также просмотрел следующую публикацию, но не смог понять фактическое решение вышеуказанного запроса - вызов-r-из-java-используя-jri-как-преобразовать-возвращаемое-значение
С уважением, ~Milind