2014-09-28 2 views
0

Я пытаюсь использовать R внутри Java, в частности, в обработке. Я хочу использовать функцию readPNG, но когда я пытаюсь, R отображает ошибку readPNG function can't be found. Это очень странно, потому что у меня активен png library, и если я попытаюсь использовать его прямо из R, то это будет просто отлично. Я использую пакет Rserve для подключения java и R. Любой совет будет очень полезен. Вот часть кода, который я использую, если это помогает.Невозможно найти определенную функцию при вызове R в java

import org.rosuda.REngine.Rserve.*; 
import org.rosuda.REngine.*; 

double[] data; 

void setup() { 
    size(300,300); 
    try { 
    RConnection c = new RConnection(); 
    // generate 100 normal distributed random numbers and then sort them 
    data= c.eval("readPNG('juego-11932.png')").asDoubles(); 

    } catch (REXPMismatchException rme) { 
    rme.printStackTrace(); 

    } catch (REngineException ree) { 
    ree.printStackTrace(); 
    } 
} 

void draw() { 
    background(255); 
    for(int i = 0; i < data.length; i++) { 
    line(i * 3.0, height/2, i* 3.0, height/2 - (float)data[i] * 50); 
    } 
} 
+0

Вы когда-нибудь загружали пакет png? – Dason

+0

В Rstudio он загружен, но я не выполняю внутреннюю обработку 'library (png)' или аналогичной команды. –

+2

Сценарий R, используемый вашим скриптом java, и тот, который вы открыли через RStudio, скорее всего, отличается. Попробуйте загрузить пакет из своего скрипта. Может быть, 'data = c.eval (" {library (png); readPNG ('juego-11932.png')} "). AsDoubles()'? – flodel

ответ

0

Ваш код Java подключается к новому сеансу R, поэтому пакеты не загружаются. Следовательно, вам нужно либо использовать png::readPNG(), либо загрузить пакет png явно.

 Смежные вопросы

  • Нет связанных вопросов^_^