执行' for'时出错。使用Rserve循环

时间:2018-03-01 13:20:46

标签: java r

我在Rstudio中执行我的R代码,它运行良好。以下执行显示我的R代码如何工作。 enter image description here

然后,我想通过Rserve使用Java执行我的R代码。以下代码是我的Java代码:

c.eval("kandweight=kand(person)");
            c.eval("person");
            c.eval("system=c(3,6,5,9,2)");
            c.eval("systemw=matrix(,length(system))");
            c.eval("k=0");
            c.eval( "for(i in 1:length(system))"
                    + "{"
                    +     "j=sum(system[1:i])"
                    +     "systemw[i]=sum(indexw[1:j])-k"
                    +     "k=sum(systemw[1:i])"
                    + "}");
我的Java代码中的

c是Rserve连接。我收到错误。错误显示行c.eval( "for(i in 1:length(system))" eval失败。我仍在尝试修复此问题但需要一些外部帮助。非常感谢。

1 个答案:

答案 0 :(得分:0)

我想如果用分号分隔这些行会有效,就像在R中将几个命令放在一行上一样:

c.eval("for(i in 1:length(system))"
                    + "{"
                    +     "j=sum(system[1:i]);"
                    +     "systemw[i]=sum(indexw[1:j])-k;"
                    +     "k=sum(systemw[1:i])"
                    + "}");