renjin
renjin copied to clipboard
Caused by: java.lang.UnsupportedOperationException: TODO when running script
Hi! I am new with R and Renjin but I am trying to run an R script from within an spring boot application. The error I am getting is the following
org.renjin.eval.EvalException: TODO
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:89) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.apply(Closure.java:133) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Promise.doEval(Promise.java:87) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Promise.force(Promise.java:81) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.R$primitive$$bang.applyPromised(R$primitive$$bang.java:35) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.BuiltinFunction.apply(BuiltinFunction.java:100) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.eval.Context.evaluate(Context.java:280) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.IfFunction.apply(IfFunction.java:34) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.UseMethod.apply(UseMethod.java:166) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.apply(Closure.java:133) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.AssignLeftFunction.assignLeft(AssignLeftFunction.java:58) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.AssignLeftFunction.apply(AssignLeftFunction.java:42) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.IfFunction.apply(IfFunction.java:40) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.apply(Closure.java:133) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.eval.Context.evaluate(Context.java:280) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.Evaluation.lapply(Evaluation.java:94) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.R$primitive$lapply.doApply(R$primitive$lapply.java:65) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.R$primitive$lapply.applyPromised(R$primitive$lapply.java:30) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.BuiltinFunction.apply(BuiltinFunction.java:100) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.InternalFunction.apply(InternalFunction.java:46) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.apply(Closure.java:133) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.AssignLeftFunction.assignLeft(AssignLeftFunction.java:58) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.AssignLeftFunction.apply(AssignLeftFunction.java:42) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Closure.apply(Closure.java:133) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.AssignLeftFunction.assignLeft(AssignLeftFunction.java:58) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.AssignLeftFunction.apply(AssignLeftFunction.java:42) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.ExpressionVector.eval(ExpressionVector.java:85) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.eval.Context.evaluate(Context.java:280) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:174) ~[renjin-script-engine-3.5-beta76.jar:na]
at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:133) ~[renjin-script-engine-3.5-beta76.jar:na]
Caused by: java.lang.UnsupportedOperationException: TODO
at org.renjin.sexp.FunctionEnvironment.isBound(FunctionEnvironment.java:280) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.Environment.exists(Environment.java:495) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.Environments.existsAnySymbol(Environments.java:292) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.Environments.exists(Environments.java:284) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.R$primitive$exists.doApply(R$primitive$exists.java:104) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.R$primitive$exists.applyPromised(R$primitive$exists.java:34) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.BuiltinFunction.apply(BuiltinFunction.java:100) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.primitives.special.InternalFunction.apply(InternalFunction.java:46) ~[renjin-core-3.5-beta76.jar:na]
at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
The script I am running is kind of long but I have narrow down the error to this call in particular
svymean(question_id_formula, design = svy_design, method = "lo", df = degf(svy_all), na.rm = FALSE)
And these are the dependencies I have added in my pom
`
<dependency>
<groupId>org.renjin.cran</groupId>
<artifactId>survey</artifactId>
<version>3.36-b2</version>
</dependency>
<dependency>
<groupId>org.renjin.cran</groupId>
<artifactId>Matrix</artifactId>
<version>1.2-17-b8</version>
</dependency>
<dependency>
<groupId>org.renjin.cran</groupId>
<artifactId>data.table</artifactId>
<version>1.10.4-3-b38</version>
</dependency>`
Is there some dependency I am missing or is this a function not supported yet by the framework? Thanks in advanced!
This is indeed a bug in the beta release. You can try using the latest stable release (0.9.x).
See here: http://packages.renjin.org/package/org.renjin.cran/survey/3.35-1
But keep in mind that no version of Renjin supports the data.table package.
Thanks for your reply! I need indeed to use a data table so I'll have to see another way around it.