【发布时间】:2014-09-28 20:35:37
【问题描述】:
我正在尝试在 Java 中使用 R,特别是在 Processing 中。
我想使用readPNG 函数,但是当我尝试使用时,R 显示错误readPNG function can't be found。这非常奇怪,因为我有png library 处于活动状态,如果我尝试直接从 R 中使用它,这个训练就好了。我正在使用Rservepackage 连接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 );
}
}
【问题讨论】:
-
你加载过 png 包吗?
-
在 Rstudio 中它已加载,但我没有在处理中执行
library(png)或类似命令。 -
您的 java 脚本使用的 R 会话和您通过 RStudio 打开的会话很可能是不同的。尝试从脚本中加载包。也许
data= c.eval("{library(png); readPNG('juego-11932.png')}").asDoubles()? -
谢谢!这有所帮助,但并非完全如此。我还必须通过使用
setwd()将我的工作目录设置为正确的方向来指定我的文件juego-11932.png的位置。这是以防万一有人阅读了这个问题并发现它有用!
标签: java r processing rserve