- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在运行一个 scala 应用程序,我想使用 Renjin 调用一个 R 文件,并将值从 scala 传递到 R 文件。当我从 scala 加载 R 文件时,我收到关于找不到 laply 包的错误。如果有人能告诉我如何使用 Renjin 将 R 包加载到 scala 中,那就太好了。
下面是我在scala中使用Renjin调用R文件的代码
使用以下命令复制带有依赖项的 jar 文件
scala -cp renjin-script-engine-0.7.0-RC6-jar-with-dependencies.jar
现在 scala 解释器启动了。
导入 javax.script.; 导入 org.renjin.sexp.;
val factory = new ScriptEngineManager();
//创建一个R引擎
val engine = factory.getEngineByName("Renjin");
//评估磁盘上的 R 脚本
engine.eval(new java.io.FileReader("myscript.R"));
在这一步错误继续找不到函数'lapply'
如何将包添加到 Renjin。我在哪里添加类路径。
下面是R文件的代码
score.sentiment = function (sentences, pos.words,neg.words, .progress='none')
{
require(plyr)
require(stringr)
scores = laply(sentences, function(sentence,pos.words,neg.words){
sentence = gsub('[[:punct:]]','',sentence)
sentence = gsub('[[:cntrl:]]','',sentence)
sentence = gsub('\\d+','',sentence)
sentence = tolower(sentence)
word.list = str_split(sentence, '\\s+')
words = unlist(word.list)
pos.matches = match(words, pos.words)
neg.matches = match(words, neg.words)
pos.matches = !is.na(pos.matches)
neg.matches = !is.na(neg.matches)
score = sum(pos.matches) - sum (neg.matches)
return(score)
},pos.words, neg.words, .progress = .progress)
scores.df = data.frame(score=scores, text=sentences)
return(scores.df)
}
问题的第二部分是如何将参数从 scala 控制台传递到此 R 文件。
例如,这里的句子是一条推文。我想将它从 scala 发送到 R 函数。
最佳答案
我不相信plyr或 stringr将与 Renjin 开箱即用。我没有检查过,但我认为 plyr 与 GNU R 的 C Api 一起工作时相当神奇,而 Renjin 似乎 choke关于 stringr 的一些测试函数。
但是,我认为您不需要上述函数中的任何一个包,只需将基础包中的 laply 和 str_split 分别替换为 sapply 和 strsplit 即可。
按照上述方法评估函数定义后,您可以使用 [invokeFunction]( http://docs.oracle.com/javase/7/docs/api/javax/script/Invocable.html#invokeFunction(java.lang.String , java.lang.Object...)) 方法从 Scala/Java 调用此函数:
((Invocable)engine).invokeFunction("score.sentiment",
"Best pizza EVER!",
new String[] { "best", "cool" },
new String[] { "sucks", "awful" });
Renjin 会将字符串数组转换为 StringVector 对象(R 字符对象),但您也可以自己创建 StringVector 对象。
http://docs.oracle.com/javase/7/docs/api/javax/script/Invocable.html#invokeFunction(java.lang.String , java.lang.Object...)
关于r - 在 Scala 或 Java 中加载包到 Renjin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22951471/
我有一个广泛使用德语变音符号的文件。我编写了一个脚本来处理该文件,该文件在 native R (RStudio) 中正常工作。不幸的是,在使用 Renjin 时,所有元音变音都被设置为文件字符串中的未
我之前寻求过解决方案,但显然无济于事,因为 renjin 仍处于实验阶段......但也许有人可以将我收到的错误消息翻译成简单的英语? 也许然后我可以确定我是否可以合理地希望在合理的时间内解决这个问题
我是 Renjin 的新手。我正在尝试在 Java 应用程序中使用 Renjin。我正在尝试开发显示 here 的示例. 我正在使用 gradle 进行编译,正如 renjin 的 web page
我正在使用 renjin,我正在尝试使用我在 java 代码中生成的值和 r 代码,例如: int x = 7; try { engine.eval("tmp<-c(x, 4)"); en
我是Renjin的新手,但在java方面经验丰富。我的 R 编码技能正在慢慢提高,我可以在 RStudio 中运行以下脚本 data("iris") dev.new() png(filename =
我正在使用 Renjin 来评估我的 Java 程序中的 R 公式。基本上,用户在文本字段中输入 R 公式,我希望 R/Renjin 为我进行解析,并返回该表达式中的变量列表。假设如果用户输入 a*b
尝试更新我们的 Maven 依赖项最近发现了一个问题。 抛出很多错误,类似于:Error download org.renjin.cran:BH:1.62.0-1-b8 这些依赖项似乎已从存储库中删除
我正在尝试使用 Java 程序运行 solnp。为了测试它是否有效,我尝试运行 benchmarkids() 函数。但我无法解决对包的引用。我已经检查了 Rsolnp 包 http://package
我最近发现了 renjin,它非常擅长使 R 在 java 中易于使用。但是,我对 R 的主要用途(数据可视化)以及将 R 图放入我的 swing 应用程序时遇到了一些问题。我的目标是简单地允许用户从
我附上了 Renjin Engine 所面临问题的屏幕截图。请看下图。我无法加载 Renjin 引擎 调试输出也附在图片中。你能帮我调试一下吗? 最佳答案 您需要添加 Google's Guava l
我正在运行一个 scala 应用程序,我想使用 Renjin 调用一个 R 文件,并将值从 scala 传递到 R 文件。当我从 scala 加载 R 文件时,我收到关于找不到 laply 包的错误。
我目前正在使用 Ro.getElementAsDouble(index) (代码如下)将 Ro 中的值一一提取到 LogNormArray (双[])。但我担心副本会浪费内存。我是一个java新手,所
我附上了 Renjin Engine 所面临问题的屏幕截图。请看下图。我无法加载 Renjin 引擎 调试输出也附在图片中。你能帮我调试一下吗? 最佳答案 您需要添加 Google's Guava l
我有一个依赖于 Renjin + Forecast 包的解决方案,该包可以在本地运行,也可以在亚马逊的典型 EC2 服务器上运行。但是,当在弹性 beanstalk 环境上部署相同的解决方案时,我在初
我创建了一个 R 脚本“script.R” df org.renjin renjin-script-engine 0.7.0-RC7 或者最新的快照 org.
我正在尝试在 Wildfly 9 上运行 R Renjin 脚本引擎。 当我运行我的 Java/Renjin 应用程序(该应用程序在本地执行上运行良好)时,通过在 Wildfly 上将其用作 EJB-
我想通过我正在使用的Renjin将R连接到postgresql engine.eval("library(RPostgreSQL)"); 出现以下错误 org.springframework.web.
假设我在 R 中创建了一个函数,例如 bin <- function(arg1, arg2, arg3) { //some code here } 我正在使用 Renjin 在 JVM 上运行 R。在
我正在尝试使用 Renjin从 Java 程序中存在的数据构建模型。我有一个ArrayList POJO 对象列表,其中每个属性都是 String ,一个double ,或 int 。如果我打电话to
我正在尝试使用 Renjin 在 Java 和 R 之间 move 数据,反之亦然(作为数据帧)。在 Stackoverflow 中搜索时,我发现了一些东西,起初我认为它会起作用,但它不会起作用,因为
我是一名优秀的程序员,十分优秀!