在java中使用Rserve并希望计算t.test。无法将结果返回到java
在Rserve的公式中遇到了这个问题。我试过使用在java中使用Rserve并希望计算t.test。无法将结果返回到java,java,r,rserve,Java,R,Rserve,在Rserve的公式中遇到了这个问题。我试过使用double和int,但也没用。这是一段文字,我想从R.返回,描述CI。但结果似乎并没有回到java应用程序中。我试过R中的命令,它们在那里工作。我不知道为什么它不起作用。 我得到了这个密码: package rservedem; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; import org.
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();
}
}
}
谢谢你的帮助 connRserve.eval(toRserveForProcessing.asString()中的
tryconnRserve.eval(toRserveForProcessing.toDebugString()代码>取而代之
由于异常状态表明您正试图将向量用作字符串,因此如果要访问结果表达式,则必须适当地访问它的类型。在这种情况下,您应该能够调用asList()
,然后使用访问器方法访问向量中的每个项。在connRserve.eval(toRserveForProcessing).asString()中
tryconnRserve.eval(toRserveForProcessing.toDebugString()代码>取而代之
由于异常状态表明您正试图将向量用作字符串,因此如果要访问结果表达式,则必须适当地访问它的类型。在这种情况下,您应该能够调用asList()
,然后使用访问器方法访问向量中的每个项
attempt to access org.rosuda.REngine.REXPGenericVector as String