R for the web

May 27, 2011
By

(This article was first published on binfalse » R, and kindly contributed to R-bloggers)

There is a nice R module for apache: rApache. So you can easily publish statistics.

To install rApache first install the following packages from the Debian/Ubuntu repository:

1
aptitude install apache2 apache2-mpm-prefork apache2-prefork-dev r-base-dev

So the basics are done. Lets install rApache. Grab the latest version:

1
wget http://biostat.mc.vanderbilt.edu/rapache/files/rapache-latest.tar.gz

extract the contents and cd into it. The installation process should be clear, I had to give a hint for the apxs2 location:

1
2
3
./configure –with-apxs=/usr/bin/apxs2
make
make install

To notify apache about the new module you need to create two more files. First one is /etc/apache2/mods-available/r.conf:

1
2
3
4
5
6
7
8
9
<Location /R>
ROutputErrors
SetHandler r-script
RHandler sys.source
</Location>

<Location /RApacheInfo>
SetHandler r-info
</Location>

Now all files in /R are assumed to be R-scripts, in /RApacheInfo you’ll find some information about your installation.
The second file is /etc/apache2/mods-available/r.load:

1
LoadModule R_module /usr/lib/apache2/modules/mod_R.so

This file just defines which lib to load.
To finish the installation you need to load the rApache module and restart the webserver via:

1
2
a2enmod r
/etc/init.d/apache2 restart

That’s it. You can test whether all was successful by browsing to localhost/RApacheInfo, hopefully you’ll see some config stuff. To prepare some own tests create a directory /var/www/R (assuming your document-root is /var/www) and paste something like this in a file called test:

1
2
y = rnorm(100)
print(y)

Browsing to localhost/R/test you should see something like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  [1] 0.4969626136 0.0004799614  1.3858672447 0.1888848545  0.5577465024
  [6] 0.6463581808  1.3594363388  1.8160182284 1.8602721944  0.3249432873
 [11]  1.0861606647 0.5075055497 0.5152062853  0.4851131375  0.2924883195
 [16] 0.5542238124  1.2741001461  0.2627202474 0.8986869795 0.8628182849
 [21] 0.0788598913  0.4843055866 0.2747585510 1.1928500793  1.6193763442
 [26]  0.3452218627  0.9518228897 0.5858433386  1.9585346877 0.2582043114
 [31] 1.7989436202  1.2713761553  0.9045031014 0.3456065867  0.3739555330
 [36]  0.7512315203 0.5289340037 0.7700091217 1.5103278314 1.5195628428
 [41] 0.8100795062  1.1027597227  0.0194147933  0.7819879165 0.3914496199
 [46] 0.4650911293  0.5889685176 0.9659270213  1.0570030616 0.0657166412
 [51] 0.2077095857  0.6421821337 0.1911934111 3.1567052058  0.2704713187
 [56] 0.5154689593  0.0923834868 1.2100314635  0.6693369266 1.2093881229
 [61]  1.6755264101  1.2151146432  0.6683583636 0.2982231602  1.4830922366
 [66]  1.6505026636 0.1769048244  0.3516470621 0.0053594481 0.3776870673
 [71] 0.4797554602  1.2207702646  1.2762816419 2.6137169267 1.4423704831
 [76] 0.4251822440  0.8007722424 0.4985947758 2.0685396392 1.6844317212
 [81] 0.2509955532  0.7906569225 0.1259848747 0.1352738978 1.4943405839
 [86] 2.4272199144 0.5778250558  1.2579971393 1.0476874144  0.2305160769
 [91] 0.2920446292  0.1823053837  1.8858770756  1.4158084170 1.2539321864
 [96]  1.2667650232  0.1272379338  1.2726069769  0.8745111042  0.3848103655

To create a graphic you need to change the content type to an image type. A small example might give you an idea:

1
2
3
4
5
6
7
8
setContentType ("image/png")
temp <- tempfile ()
y = rnorm (100)
png (temp, type="cairo")
plot (1:100, y, t=‘l’)
dev.off ()
sendBin (readBin (temp, ‘raw’, n=file.info(temp)$size))
unlink (temp)

Reload the page and you’ll see a more or less nice plot 😛
That’s it for the moment, for a more interactive interface take a look at the ggplot2 mod.

Download:
R: web-image.R
(Please take a look at the man-page)

To leave a comment for the author, please follow the link and comment on their blog: binfalse » R.

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Tags: , , , , , , ,

Comments are closed.

Sponsors

Mango solutions



RStudio homepage



Zero Inflated Models and Generalized Linear Mixed Models with R

Dommino data lab

Quantide: statistical consulting and training



http://www.eoda.de







ODSC

ODSC

CRC R books series





Six Sigma Online Training





Contact us if you wish to help support R-bloggers, and place your banner here.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)