2014-09-28 51 views
0

我正在嘗試在Java中使用R,特別是在Processing中。 我想使用readPNG函數,但是當我嘗試時,R顯示錯誤readPNG function can't be found。這是非常奇怪的,因爲我有png library活躍,如果我嘗試直接從R使用它,這種鍛鍊很好。我使用Rserve包來連接java和R.任何建議都會非常感興趣。 這是我使用的代碼的一部分,如果它有幫助。在java中調用R時找不到某個函數

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 2014-09-28 20:38:19

+0

在Rstudio中它已經加載,但是我不在處理中執行'library(png)'或類似的命令。 – 2014-09-28 20:59:26

+2

您的Java腳本使用的R會話和您通過RStudio打開的會話最有可能不同。嘗試從腳本中加載包。也許'data = c.eval(「{library(png); readPNG('juego-11932.png')}」)。asDoubles()'? – flodel 2014-09-28 21:47:15

回答

0

您的Java代碼連接到新的R會話,因此沒有加載軟件包。因此,您必須使用png::readPNG()或明確加載png軟件包。

相關問題