我想在Java中加载和解析RDS/RData文件,我做了一些googling,发现Renjin帮助调用Java中的R函数。(我不是R开发人员,在^^‘之前我甚至不知道这些文件的存在。)
这是我的R码:
my_data <- readRDS("R/outputs_profils_cl8.RDS")
这是我的Java代码:
RenjinScriptEngineFactory factory = new RenjinScriptEngineFactory();
RenjinScriptEngine engine = factory.getScriptEngine();
engine.eval(new java.io.FileReader("R/script.R"));
我的pom.xml文件:
<dependency>
<groupId>org.renjin</groupId>
<artifactId>renjin-script-engine</artifactId>
<version>3.5-beta65</version>
</dependency>
但我发现了一个错误:
线程“主”
中的org.renjin.eval.EvalException异常:无法读取R3.5.0编写的工作区版本3;需要R 3.5.0或更高版本在org.renjin.primitives.R$primitive$unserializeFromConn.applyPromised(R$primitive$unserializeFromConn.java:42) at org.renjin.sexp.BuiltinFunction.apply(BuiltinFunction.java:100) at org.renjin.primitives.special.InternalFunction.apply(InternalFunction.java:46) at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) atorg.renjin.sexp.Closure.applyPromised(Closure.java:200) at org.renjin.sexp.Closure.apply(Closure.java:133) at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) at org.renjin.primitives.special.AssignLeftFunction.assignLeft(AssignLeftFunction.java:58) at org.renjin.primitives.special.AssignLeftFunction.apply(AssignLeftFunction.java:42) at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) at org.renjin.sexp.ExpressionVector.eval(( org.renjin.eval.Context.evaluate(Context.java:280) at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:174) at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:169) at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:148) at control.Main.main(Main.java:330)
你知道如何解决这个问题吗?我遵循了人进网站的安装说明。
如果您可以提出其他可以完成以下工作的解决方案/库,我将保持开放:)
谢谢你的提前!
发布于 2020-11-05 14:20:30
虽然我确信有办法做到这一点,但我认为你应该问问自己是否应该这样做。
.RData
不是一种在不同软件之间存储和传输文件的传统格式。相反,您应该将数据从.Rdata
文件导出为更合适的格式,例如逗号分隔值(.csv
)。
这些其他格式有更广泛的支持,在大多数情况下将更适合。
https://stackoverflow.com/questions/64698971
复制相似问题