我通过Java将多个制表符分隔文件传递到R中。R程序将这些制表符分隔文件合并为单个文件并发回java,它被捕获在变量“name”中。现在我想重命名并保存它使用 Windows 中的保存对话框将文件存储在“name”中作为制表符 delim。高度赞赏任何帮助。这是 java 代码:
import org.rosuda.REngine.*;
public class rjava {
// Before this run Rserve() command in R
public String ana(String filenames)
{
String name = "";
try{
System.out.println("INFO: Trying to connect to R ");
RConnection c = new RConnection();
System.out.println("INFO: Connected to R");
System.out.println("INFO: The Server version is "+ c.getServerVersion());
// c.voidEval("source('D:/combine/combining_files.r')");
c.voidEval("source('D:/combine/merge.r')");
c.assign("file",filenames);
// name = (c.eval("fn(file)").asString());
name = (c.eval("combine (file)").asString());
c.close();
}
catch(Exception e)
{
System.out.println("ERROR: In Connection to R");
System.out.println("The Exception is "+ e.getMessage());
e.printStackTrace();
}
return name;
}
}
最佳答案
我发现在 R 和 Java 之间传递复杂对象是一件很痛苦的事情。我不会传递完整数据,而是仅将文件名作为字符串传递。要么让 Java 告诉 R 写出新文件(我的首选项),要么让 Java 读入文件,然后用新名称写出。
关于java - 将文件从 R 传递到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7174008/