Use R! in fifteen different ways: A survey of R front-ends...

download Use R! in fifteen different ways: A survey of R front-ends ...dirk.eddelbuettel.com/papers/quantian_useR2006.pdf · Use R! in fifteen different ways: A survey of R front-ends in

If you can't read please download the document

Transcript of Use R! in fifteen different ways: A survey of R front-ends...

  • Use R! in fifteen different ways:A survey of R front-ends in Quantian

    Dirk Eddelbuettel

    [email protected]

    UseR! 2006 The R User Conference 2006Wirtschaftsuniversitt Wien, Austria, June 15-17 2006

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 1 / 40

    [email protected]@debian.org

  • Outline

    1 IntroductionWhat is Quantian?

    2 FrontendsClassicWeb-basedGUIsProgrammatically

    3 SummaryMain points

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 2 / 40

    [email protected]

  • What is Quantian?A live-dvd for quantitative work

    Quantian is a directly bootable and self-configuring Linux sytemthat runs from a compressed dvd image.

    Quantian can run concurrently to your existing OS thanks to thefree-only-as-in-beer VMWare Player (or the free-but-slower Qemu)emulator, including virtual and networked disk access to persistentsession.

    Quantian contains over 7.5gb of software, including an additional5gb of quantitative software with scientific, numerical, statistical,engineering, ... application.

    Quantian also contains editors, programming languages, completelatex support, two office suites, networking tools and more.

    http://dirk.eddelbuettel.com/quantian

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 3 / 40

    http://dirk.eddelbuettel.com/quantian.htmlhttp://dirk.eddelbuettel.com/quantian.htmlhttp://www.vmware.comhttp://dirk.eddelbuettel.com/quantianhttp://dirk.eddelbuettel.com/quantianhttp://dirk.eddelbuettel.com/[email protected]

  • Quantian and RR, CRAN, BioConductor, and more

    Quantian has always included R, and release 0.7.9.2 contains 877R packages providing a complete collection of R code: essentiallyall Unix-installable packages from CRAN, the completeBioConductor relase 1.7, as well as packages from Omegahat,from J. Lindsey and from T. Yee.

    Suitable editors (ESS for Emacsen, Vim, Kate), LaTeX support,and more making Quantian possibly the single-best source of Rand related software.

    Several related projects such as Ggobi, Mondrian, Weka orGRASS further complement Quantian for particular scientificcommunities.

    This presentation focuses on R interfaces: direct, graphical, orprogrammed.

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 4 / 40

    http://dirk.eddelbuettel.com/quantian.htmlhttp://r-project.orghttp://r-project.orghttp://r-project.orghttp://www.bionconductor.orghttp://www.omegahat.orghttp://dirk.eddelbuettel.com/quantian.htmlhttp://r-project.orghttp://www.ggobi.orghttp://www.rosuda.org/Mondrianhttp://www.cs.waikato.ac.nz/ml/weka/http://grass.itc.it/http://dirk.eddelbuettel.com/quantian.htmlhttp://[email protected]

  • Outline

    1 IntroductionWhat is Quantian?

    2 FrontendsClassicWeb-basedGUIsProgrammatically

    3 SummaryMain points

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 5 / 40

    [email protected]

  • Standard command-line

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 6 / 40

    [email protected]

  • Standard command-lineDetails

    Probably the only interface everybody is, or has been, using.

    Fairly flexible, searchable, customizable, ... thanks to GNUreadline.

    Direct access to excellent help facilities, package administration,and more.

    Useable for scripting and piping, but still no direct script support.

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 7 / 40

    [email protected]

  • Portable simple GUI

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 8 / 40

    [email protected]

  • Portable simple GUIDetails

    Implemented using Rs core tcltk package, it provides the onlytruly portable UI.

    This UI is more an illustration, but other projects have builtsuccessfully on tcltk: Rcmdr (more below) and Sciviews areexamples.

    Tcl/Tk is mature, well known and ... somewhat ugly.

    Documentation is provided by P. Dalgaard in two R News articles(1(3), 2(3)), via J. Wettenhalls examples site and via postings onthe r-help and r-sig-gui lists.

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 9 / 40

    http://cran.r-project.org/doc/Rnews/Rnews_2001-3.pdfhttp://cran.r-project.org/doc/Rnews/Rnews_2002-3.pdfhttp://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/https://stat.ethz.ch/pipermail/r-help/https://stat.ethz.ch/pipermail/r-sig-gui/[email protected]

  • Gtk/Gnome GUI

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 10 / 40

    [email protected]

  • Gtk/Gnome GUIDetails

    Status is dormant at best. Unsure about port to Gnome2.

    Only (?) available on Unix, though Gtk/Gnome has been ported toWindows

    RGtk2 provides an updated port of Gtk2 toolkit to R this is usede.g. for J. Verzanis PMG.

    Now on CRAN as package gnomeGUI.

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 11 / 40

    http://www.ggobi.org/RGtk2http://r-project.orghttp://www.math.csi.cuny.edu/[email protected]

  • R via ESS

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 12 / 40

    [email protected]

  • R via ESSDetails

    Probably the power users interface

    R FAQ 6.2: Should I run R from within Emacs? Yes, definitely.

    Lots of power, lots of documentation, and even an UseR 2006tutorial session.

    Dont leave home without it.

    http://ess.r-project.org/

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 13 / 40

    http://ess.r-project.org/http://ess.r-project.org/http://ess.r-project.org/[email protected]

  • Rcmdr

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 14 / 40

    [email protected]

  • RcmdrDetails

    Very impressive tcltk-based UI by John Fox.

    Aimed a R beginners, allowing them gradually morph from clickingmenus to entering commands.

    Provides plugin mechanism used by urca; has been extended tooby QCAGUI.

    Described in an JSS article.

    http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 15 / 40

    http://www.jstatsoft.org/counter.php?id=134&url=v14/i09/v14i09.pdf&ct=1http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/[email protected]

  • Outline

    1 IntroductionWhat is Quantian?

    2 FrontendsClassicWeb-basedGUIsProgrammatically

    3 SummaryMain points

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 16 / 40

    [email protected]

  • Rpad

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 17 / 40

    [email protected]

  • RpadDetails

    Rpad integrates R with the Apache webserver

    Rpad also uses some Mozilla webbrowser customisation usingthe textile menu bar extension.

    Together, they provide R using the browser as an operatingsystem paradigm; this can be useful when little or no software canbe installed on the client side, or when pre-programmed solutionsneed to be distributed.

    Alternatively, Quantian also provides Rcgi as a second web-basedinterface.

    http://www.rpad.org/Rpad

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 18 / 40

    http://www.rpad.org/Rpadhttp://r-project.orghttp://www.rpad.org/Rpadhttp://www.rpad.org/Rpadhttp://www.rpad.org/[email protected]

  • Outline

    1 IntroductionWhat is Quantian?

    2 FrontendsClassicWeb-basedGUIsProgrammatically

    3 SummaryMain points

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 19 / 40

    [email protected]

  • JGR

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 20 / 40

    [email protected]

  • JGRDetails

    Cross-platform Java GUI for R that is the winner of the 2005Chambers Award.

    Very nice integration of developer IDE (including syntaxhighlighting, autocompletion and context-sensitive help pop-ups),multi-tab help system, object browser, dynamic graphs, packagemanager, and more. Very slick.

    http://www.rosuda.org/JGR/

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 21 / 40

    http://www.rosuda.org/JGR/http://www.rosuda.org/JGR/http://www.rosuda.org/JGR/[email protected]

  • TeXmacs

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 22 / 40

    [email protected]

  • TeXmacsDetails

    GNU TeXmacs calls itself a wysiwyw (what you see is what youwant) editing platform.

    Aims to provide a unified framework for editing structureddocuments with different types of content (text, graphics,mathematics, interactive content, etc.).

    Rendering engine uses high-quality typesetting algorithms toproduce professionally looking documents.

    Includes a text editor with support for mathematical formulas, asmall technical picture editor and a tool for making presentationsfrom a laptop.

    TeXmacs can be used as an interface to numerous externalprograms for computer algebra, numerical analysis, statistics,shells, etc.

    http://www.texmacs.org/

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 23 / 40

    http://www.texmacs.org/http://www.texmacs.org/http://www.texmacs.org/[email protected]

  • Rkward

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 24 / 40

    [email protected]

  • RkwardDetails

    Rkward aims to becomes a modern GUI for R.

    Uses the KDE / Qt libraries and toolkits providing nice desktopintegration.

    Currently in alpha status.

    http://rkward.sourceforge.net/

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 25 / 40

    http://rkward.sourceforge.nethttp://rkward.sourceforge.net/http://[email protected]

  • Outline

    1 IntroductionWhat is Quantian?

    2 FrontendsClassicWeb-basedGUIsProgrammatically

    3 SummaryMain points

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 26 / 40

    [email protected]

  • Rserve

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 27 / 40

    [email protected]

  • RserveDetails

    Rserve provides a headless R server accessibleprogrammatically via TCP/IP from various languages over thenetwork.

    Initially only provided with Java clients, it now also containsprovides C++ client examples (which are currently not installed inQuantian).

    Every connection gets a separate workspace and workingdirectory.

    Supports remote connection, authentication and file transfer.

    http://www.rosuda.org/Rserve/

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 28 / 40

    http://www.rosuda.org/Rserve/http://www.rosuda.org/Rserve/http://www.rosuda.org/Rserve/[email protected]

  • RPy

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 29 / 40

    [email protected]

  • RPyDetails

    RPy provides a simple yet robust interface to R from Python.

    An option for those familiar with Python but not (yet) with R.

    Related to, but simpler than, Omegahats RSPython

    RPy can manage all kinds of R objects and can execute arbitraryR functions (including the graphic functions).

    Errors from the R language are converted to Python exceptions.

    Any module installed for the R system can be used from withinPython.

    The examples and documentation are not currently installed inQuantian.

    RPy is a part of G. Warnes OpenStatServer / RStatServer /Chaco projects.

    http://rpy.sourceforge.net

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 30 / 40

    http://rpy.sourceforge.nethttp://rpy.sourceforge.nethttp://[email protected]

  • RSPerl

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 31 / 40

    [email protected]

  • RSPerlDetails

    Bi-directional interface between Perl and R.

    Embeds one interpreter (e.g. R) within the process of the otherinterpreter (e.g. Perl).

    Permits to call routines and functions in the other language as ifthey were part of the local environment avoids having toprogram in a different language while making the functionality inthe other system transparently available with no additional coding.

    This makes Perl more interactive, also allows the R/Splusprogrammer to use convenient and familiar syntax to mixcomputations in the two different sytems, and provide statisticalfunctionality to Perl applications.

    Some environment variables are needed as seen on thescreenshot.

    http://www.omegahat.org/RSPerl

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 32 / 40

    http://www.omegahat.org/RSPerlhttp://www.omegahat.org/RSPerlhttp://www.omegahat.org/[email protected]

  • Embedded: Pl/R

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 33 / 40

    [email protected]

  • Embedded: Pl/RDetails

    Probably the earliest production-quality examply of embedding Rinto another application.

    In this case, R is embedded into the PostgreSQL RDBM as justanother embedded language.

    Obvious appeal: Programming with data goes directly to wherethe data resides.

    Pl/R is shipped with the PostgreSQL sources.

    http://www.joeconway.com/plr/

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 34 / 40

    http://r-project.orghttp://r-project.orghttp://www.postgresql.orghttp://www.joeconway.com/plr/http://www.joeconway.com/plr/http://www.joeconway.com/plr/[email protected]

  • rJava

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 35 / 40

    [email protected]

  • rJavaDetails

    rJava is a simple R-to-Java interface. It is comparable to the.C/.Call C interface.

    rJava provides a low-level bridge between R and Java (via JNI). Itallows to create objects, call methods and access fields of Javaobjects from R.

    rJava is used e.g. by the recent RWeka package (also inQuantian).

    Eclipse should be in the next Quantian revision.

    http://www.rosuda.org/rJava

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 36 / 40

    http://www.rosuda.org/rJavahttp://www.rosuda.org/rJavahttp://www.rosuda.org/[email protected]

  • SNOW

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 37 / 40

    [email protected]

  • SNOWDetails

    SNOW provides the Simple Network of Workstations, a simplewrapper around MPI, PVM and sockets to permit computation ona (possibly heterogenous) cluster of machines.

    Beowulf-style distributed statistical computing with an easy Rfrontend.

    Works out of the box in Quantian, with or without an underlyingopenMosix cluster.

    We explored distributed statistical computing with Quantian inprevious presentations (Usenix 2004; DSC 2005).

    http://www.stat.uiowa.edu/~luke/R/cluster/cluster.html

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 38 / 40

    http:/dirk.eddelbuettel.com/papers/quantian_usenix2004_slides.pdfhttp:/dirk.eddelbuettel.com/papers/quantian_dsc2005.pdfhttp://www.stat.uiowa.edu/~luke/R/cluster/cluster.htmlhttp://www.stat.uiowa.edu/~luke/R/cluster/cluster.htmlhttp://www.stat.uiowa.edu/~luke/R/cluster/[email protected]

  • Outline

    1 IntroductionWhat is Quantian?

    2 FrontendsClassicWeb-basedGUIsProgrammatically

    3 SummaryMain points

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 39 / 40

    [email protected]

  • Summary

    Quantian provides unparalled support for various ways to Use R ready-to-run directly out-of-the box.

    Quantian can be used directly, via various graphical interfaces,different programming interfaces, embedded, as part of distributedcomputing, ...

    Thanks to virtualization, users can also access Quantian withoutreboots.

    Easy to try Quantian: just download and write to DVD, or order aninexpensive pre-made DVD.

    http://dirk.eddelbuettel.com/quantian

    Dirk Eddelbuettel ( [email protected] ) R front-ends in Quantian UseR 2006 40 / 40

    http://dirk.eddelbuettel.com/quantianhttp://dirk.eddelbuettel.com/quantianhttp://dirk.eddelbuettel.com/[email protected]

    IntroductionWhat is Quantian?

    FrontendsClassicWeb-basedGUIsProgrammatically

    SummaryMain points