Java与R的集成
我正在尝试构建一个包含R代码的java项目。这背后的主要逻辑是我想在同一个项目中自动化数据结构和数据分析。我有一部分能力做到这一点。我将R连接到Java,我的R代码运行良好。我在本地机器上完成了所有设置,并根据需要提供所有输出。由于数据集很大,我正试图在amazon服务器上运行这个。但当我将其转移到服务器时,我的项目无法正常工作。它无法执行Java与R的集成,java,eclipse,r,eclipse-juno,Java,Eclipse,R,Eclipse Juno,我正在尝试构建一个包含R代码的java项目。这背后的主要逻辑是我想在同一个项目中自动化数据结构和数据分析。我有一部分能力做到这一点。我将R连接到Java,我的R代码运行良好。我在本地机器上完成了所有设置,并根据需要提供所有输出。由于数据集很大,我正试图在amazon服务器上运行这个。但当我将其转移到服务器时,我的项目无法正常工作。它无法执行库(XLConnect)、库(rJava)。每当我在java项目中调用这两个库时,它都会崩溃。在R代码中独立运行并给我输出。我能为此做些什么,以及如何纠正这样
库(XLConnect)、库(rJava)
。每当我在java项目中调用这两个库时,它都会崩溃。在R代码中独立运行并给我输出。我能为此做些什么,以及如何纠正这样的错误。请帮我解决这个问题
我的java代码是
import java.io.InputStreamReader;
import java.io.Reader;
public class TestRMain {
public static void main(String[] arg)throws Exception{
ProcessBuilder broker = new ProcessBuilder("R.exe","--file=E:\\New\\Modified_Best_Config.R");
Process runBroker = broker.start();
Reader reader = new InputStreamReader(runBroker.getInputStream());
int ch;
while((ch = reader.read())!= -1)
System.out.print((char)ch);
reader.close();
runBroker.waitFor();
System.out.println("Execution complete");
}
}
在Modified\u Best\u Config.R
中,我编写了这些代码
library('ClustOfVar');
library("doBy");
library(XLConnect)
#library(rJava)
#library(xlsx)
path="E:/New/";
############Importing and reading the excel files into R##############
Automated_R <- loadWorkbook("E:/New/Option_Mix_Calculation1.xlsx")
sheet1 <- readWorksheet(Automated_R, sheet = "Current Output")
sheet2 <- readWorksheet(Automated_R, sheet = "Actual Sales monthly")
sheet3 <- readWorksheet(Automated_R, sheet = "Differences")
#####################Importing raw Data###############################
optionData<- read.csv(paste(path,"ModifiedStructureNewBestConfig1.csv",sep=""),head=TRUE,sep=",");
nrow(optionData)
optionDemand=sapply(split(optionData,optionData$Trim),trimSplit);
optionDemand1=t(optionDemand[c(-1,-2),]);
optionDemand1
################Calculating the equipment Demand####################
optionDemand2<-t(optionDemand2[c(-1,0)]);
Rownames <- as.data.frame(row.names(optionDemand2))
writeWorksheet(Automated_R,Rownames, sheet = "Current Output", startRow = 21, startCol = 1)
writeWorksheet(Automated_R,optionDemand2, sheet = "Current Output", startRow = 21, startCol = 2)
saveWorkbook(Automated_R)
整套代码在我的本地机器上运行得很好。但每当我试图在amazon服务器上运行它时,它都不会运行。在R中,此代码分别在服务器上运行。我有两个以上的R代码运行没有任何错误。我能为此做些什么,请帮帮我 感谢您用一些示例代码更新您的问题。我无法完全复制您的情况,因为我目前无法立即访问AmazonEC2,也不知道您使用的实例的具体类型。但这里有几条建议可以解决你的问题,我有预感这是由一个丢失的包引起的 1。尝试通过R脚本安装有问题的软件包 在R脚本的一开始,在尝试加载任何包之前,插入以下内容:
install.packages(c("XLConnect", "rJava"))
如果您的实例包含一个指定的CRAN镜像(基本上是R首先从中下载包源代码的在线存储库),那么应该将包安装在服务器上保存其他包的同一个repo中。然后,library
或require
应该加载您的包
(旁注:rJava
实际上是XLConnect
的一个依赖项,因此如果您只指定library(XLConnect)
,它将自动加载)
2。如果上述操作不起作用,请尝试通过命令行安装软件包
这本质上就是@Ben在评论中所暗示的。或者,请参阅,它用不同的包处理类似的问题。如果可以,在服务器的终端中,我将尝试输入以下三个命令:
sudo add-apt-repository ppa:marutter/rrutter
sudo apt-get update
sudo apt-get install r-cran-XLConnect
根据我的经验,当我似乎找不到需要安装的软件包时,这是一个很好的尝试。但您可能有权也可能没有权在服务器实例上安装软件包。感谢您用一些示例代码更新您的问题。我无法完全复制您的情况,因为我目前无法立即访问AmazonEC2,也不知道您使用的实例的具体类型。但这里有几条建议可以解决你的问题,我有预感这是由一个丢失的包引起的 1。尝试通过R脚本安装有问题的软件包 在R脚本的一开始,在尝试加载任何包之前,插入以下内容:
install.packages(c("XLConnect", "rJava"))
如果您的实例包含一个指定的CRAN镜像(基本上是R首先从中下载包源代码的在线存储库),那么应该将包安装在服务器上保存其他包的同一个repo中。然后,library
或require
应该加载您的包
(旁注:rJava
实际上是XLConnect
的一个依赖项,因此如果您只指定library(XLConnect)
,它将自动加载)
2。如果上述操作不起作用,请尝试通过命令行安装软件包
这本质上就是@Ben在评论中所暗示的。或者,请参阅,它用不同的包处理类似的问题。如果可以,在服务器的终端中,我将尝试输入以下三个命令:
sudo add-apt-repository ppa:marutter/rrutter
sudo apt-get update
sudo apt-get install r-cran-XLConnect
根据我的经验,当我似乎找不到需要安装的软件包时,这是一个很好的尝试。但是您可能有权也可能没有权限在服务器实例上安装软件包。听起来您可能没有在服务器实例上安装这些软件包,但是您能否尝试发布一些代码来重现此问题,以便其他人能够更有效地解决此问题?这可能会有所帮助:您说“在R中,此代码在服务器上运行。“您是在使用RStudio服务器,还是在发生此问题的同一亚马逊服务器上直接从终端运行R?听起来您的服务器实例上可能没有安装这些软件包,但您能否尝试发布一些代码来重现此问题,以便其他人能够更有效地解决此问题?这可能会有所帮助:您说“单独在R中,此代码在服务器上运行。”您是在使用RStudio服务器,还是在发生此问题的同一Amazon服务器上直接从终端运行R?