如何开始创建基于/使用JGR的R应用程序?

时间:2010-08-18 22:56:44

标签: java r

有人能指出我开发JGR可靠R应用程序的良好开端吗? 粗略地说,我想做一些像Deducer (btw now available with ggplot2!!)那样通过一些选项来增强JGR菜单的东西(当然我想用更简单的方式来做)。 基本上,该应用程序是一个GUI,用于呈现使用Sweave .Rnw作为某种“模板语言”但有一些经常更改的文本的定期报告。

所以......

1)将它连接到R / JGR是否合理?或者我应该创建一些独立的Java程序或Python脚本来完成这项工作......?

2)哪个部分应该用Java编写,哪个用R编写?我检查了Deducer的源代码并找到了相当多的JAVA ...你会推荐在JAVA中使用哪些部分?

3)你能指点我的其他软件包,并且比使用JGR的Deducer简单,所以希望我可以从他们的代码中学到东西吗?

4)是否有另一种方法可以将某些菜单添加到标准R GUI中,该菜单适用于“所有”操作系统(Linux,Windows,Mac OS X)?

对于任何建议,指针以及不要做的事情,我们都会大喊大叫!

2 个答案:

答案 0 :(得分:2)

对于4的回答,可以使用gWidgetsWWW创建交互式网页来收集用户输入。它可以在使用RApache的服务器上运行,也可以使用R的帮助页面Web服务器独立运行。这是一个示例网页。 (要独立运行,请将其保存在某处,比如/tmp/test.R,并使用localServerStart加载(“/ tmp / test.R”)

runSweave <- function(...) {
  ## replace with real deal
  ## point is l holds values:
  values <- sapply(l, svalue, simplify=FALSE)
  gmessage(message=sprintf("Run sweave using inputs %s and %s", values$one,values$two), parent=w)
}

runAbout <- function(...) {
  gmessage("A simple GUI for running a report", parent=w)
}

w <- gwindow("Write a report")
l <- list()

actions <- list(run=gaction(label="run",  handler=runSweave, parent=w),
                about=gaction(label="about", handler=runAbout, parent=w))

gmenu(actions, cont=w)

g <- ggroup(cont=w, horizontal=FALSE)
ghtml(boilerplate <- paste("Lorem ipsum dolor sit amet, consectetur adipisicing elit,",
                           "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
                           "Ut enim ad minim",
                           sep="</br>"),
      cont=g)

l$one <- gedit("Enter text here", cont=g)
ghtml(boilerplate, cont=g)
l$two <- gedit("Enter more text here", cont=g)

gstatusbar("thats it...", cont=g)
visible(w) <- TRUE

答案 1 :(得分:1)

好的,我要回答1 st 和4 th

广告1.恕我直言,为Sweave创建GUI并不“合理”......如果我正在撰写报告,我想做类似的事情:

There were gathered \Sexpr{length(na.omit(x))} valid responses, 
with mean of \Sexpr{mean(x, na.rm = TRUE)} and 
standard deviation \Sexpr{sd(x, na.rm = TRUE)}.

<<qqplot, echo = FALSE, fig = TRUE>>==
qqplot(x)
qqnorm(x)
@

LyX已经这样做了(虽然我将Emacs与ESS和AUCTeX一起使用)。我的意思是,你可以编写一个JAVA GUI并提供一些功能...但如果你想引起注意,你必须炫目,否则,你注定要发明已经发明的东西。但是你可以贡献......只是......没有充分的理由不要从头开始。

广告4.是的,有:RApache和/或RServe。您可以将R与一些漂亮的JS库(如ExtJS)混搭,并在Jeroen Ooms / ggplot2 / stockplot / {中执行lme4之类的操作{3}}申请。 brew包非常有用。有一些缺点:你需要服务器访问,客户端的Internet访问,但它是跨平台的,服务器是机器的野兽,所以想象一下在台式机上压缩一些大数据是什么样的...服务器/云可以在眨眼时间做。

因为我不知道如何在JAVA,HTML / CSS / JavaScript / PHP / MySQL /等中编写单个血腥的东西。 R是我的首选武器。

所以......

祝你好运!