【发布时间】:2016-11-12 09:31:01
【问题描述】:
使用 Rserve 中的公式遇到了这个问题。我尝试使用double 和int,但这也不起作用。这是我想要从 R 中返回的一段文本。描述 CI。但结果似乎并没有回到 java 应用程序。我已经尝试了 R 中的命令并且它们在那里工作。不知道为什么它不起作用。
我得到了这个代码:
package rservedem;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
import org.rosuda.REngine.*;
import org.rosuda.REngine.Rserve.*;
/**
*
* @author Carl
*/
public class RserveDem {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
RConnection connRserve;
Scanner inputStream = null;
try {
inputStream = new Scanner(new FileInputStream("C:/vikt-fore_data2Update.csv")); //läser in data från fil
}
catch (FileNotFoundException e) {
System.out.println("Filen hittades inte! Stänger av...");
System.exit(0);
}
inputStream.useDelimiter(",");
int vikt;
double [] memberArray = new double[157];
for (vikt = 0; vikt < memberArray.length; vikt++) {
memberArray [vikt] = Double.valueOf(inputStream.next());
}
try {
connRserve = new RConnection();
connRserve.assign("memberArr", memberArray);
String toRserveForProcessing = "t.test(memberArr);";
System.out.println("Den skapade strängen som skickas till Rserve " + toRserveForProcessing);
String summan = connRserve.eval(toRserveForProcessing).asString();
System.out.println ("Svaret från rserve " + summan);
}
catch(RserveException ex)
{
System.out.println(ex.getMessage());
}
catch (REXPMismatchException ex)
{
System.out.println(ex.getMessage());
}
catch (Exception e)
{
System.out.println("Seomthing went wrong, but it's not Rserve: " +e.getMessage());
e.printStackTrace();
}
}
}
我试图搜索错误消息,但找不到它的含义。获得有关如何执行命令的一些想法并将结果返回到 java 应用程序的输出窗口中将非常有帮助。 我得到这个错误:
attempt to access org.rosuda.REngine.REXPGenericVector as String
感谢您的帮助!
【问题讨论】: