I am a web development novice so there is no particular reason it has to be perl other than that is what I started with. Seemed like an easy way to interface with MySQL and allowed me to execute R scripts as well. I have figured out one way to execute run() from within perl but it is not elegant, it redirects to the new page entirely instead of showing the plot inline.
my $url = "http://localhost/cgi-bin/R/carls_test?Projects=$Projects&Species=$Species&Year=$Year&Normalize=$normalize&Lag=$lag"; print "<META HTTP-EQUIV=refresh CONTENT=\"0;URL=$url\">\n\n"; I also tried my $url = "http://localhost/cgi-bin/R/carls_test?Projects=$Projects&Species=$Species&Year=$Year&Normalize=$normalize&Lag=$lag"; my $content = get $url; die "Couldn't get $url" unless defined $content; print $content; This would display the data values and tables inline, but not the images(image not found box). It seems I can't draw to a png device from within run() so my best/easiest method at the moment is redirecting to the new page. So far, it seems to take 1/2 to 2/3 the time to create the plots than starting a new instance of R each time. That is pretty good time savings! -Carl ________________________________ From: Simon Urbanek <[email protected]> Cc: "[email protected]" <[email protected]> Sent: Monday, May 7, 2012 3:57 PM Subject: Re: [R-SIG-Mac] FastRWeb Questions On May 7, 2012, at 3:49 PM, Carl pfisterer wrote: > Thanks Simon, that helps a lot. With respect to my last question, I have a > cgi script that gets user input from a form, then plots the data in R. What > I would like to do is to call run(...) from within the cgi script when the > user clicks submit. > Well, you could get rid of the perl part to start with - FastRWeb automatically maps form entries into run() arguments so you should not need perl at all to process forms. If you still have some logic in perl that you don't want to push to R then your options may be thin -- you could run Rcgi from perl, use AJAX (from a page you generate with perl) or connect to Rserve directly, but I don't have an Rserve perl client, so you'd have to look elsewhere (maybe misappropriating the C++ client or something like that ... however, it should be fairly easy to write perl client for this purpose since you're only interested in strings) Cheers, Simon > -Carl > > From: Simon Urbanek <[email protected]> > Cc: "[email protected]" <[email protected]> > Sent: Monday, May 7, 2012 9:20 AM > Subject: Re: [R-SIG-Mac] FastRWeb Questions > > Carl, > > On May 7, 2012, at 1:04 PM, Carl pfisterer wrote: > > > I have gotten FastRWeb working on Mac OS X 10.5 but I have a few of > > questions. Is it possible to send more than one argument to run(...)? > > Yes > > > > How would I parse a range sent as an argument (i.e. run(x=1:20))? > > typically > > http://.../R?x1=1&x2=20 > > run <- function(x1, x2, ...) { > x <- seq(as.integer(x1), as.integer(x2)) > > In theory you could use > > http://.../R?x=1:20 > > run <- function(x, ...) { > x <- eval(parse(text=x)) > > but I would not recommend that since it would allow users to inject arbitrary > code which is not good for the security ... > > > > Finally, what is the syntax to call the R script from within a PERL script? > > What do you mean? R scripts are to be run from R, not perl... You could > simply run the Rcgi binary, but I'm not sure where you are heading with this > ... > > > > I have read Simon's paper at: > >http://urbanek.info/research/pub/urbanek-iasc08.pdf and it has helped, but I > >didn't see these particular items addressed. FastRWeb looks very promising, > >my current implementation initializes R each time and is a bit slow, I am > >hopeful this will speed things up a lot. > > > > It certainly will a there is no startup delay. > > Cheers, > Simon > > > > [[alternative HTML version deleted]]
_______________________________________________ R-SIG-Mac mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-sig-mac
