从R代码中的JAVA代码调用参数以动态传递CSV文件和唯一ID

时间:2018-08-06 08:10:13

标签: java r

我有一个R脚本,我想在其中调用Java代码中的参数。参数是csv file name文件名和unique ID,必须使用它们来命名两个输出文件。

我的R脚本是:

 df1 <- read.csv("filename.csv")
 vs=colnames(df1)
 md=formula(paste(vs[3],"~",vs[1],"+",vs[2]))
 fit <- summary(aov(md, data=df1))[[1]]

 #text output   
 names(fit)[1:4]=c("DF","SS","MS","F")
 sink("test.txt")

在此代码中,第一行df1 <- read.csv("filename.csv")应该动态取自JAVA code的文件名,最后一行sink("test.txt")应该取unique ID并创建输出文件。

java代码是:

buildCommand.add("Rscript  ");  
buildCommand.add(scriptName);
buildCommand.add(inputFileWithPathExtension);
buildCommand.add(uniqueIdForR); 

我见过其他post,但不确定是否对我的情况有帮助,也有类似的帖子在谈论rJava包`,但不清楚。

任何帮助将不胜感激。预先感谢!

1 个答案:

答案 0 :(得分:1)

下面是一个非常简单的示例,用于读取您所用的命令行参数:

args <- commandArgs(TRUE)
input <- args[1]
output <- paste0(args[2], ".txt")

cat("Reading from", input, "\n")
cat("Writing to", output, "\n")

示例:

$ Rscript foo.R foo.csv 1234567
Reading from foo.csv 
Writing to 1234567.txt