The Omega Project for Statistical Computing


Table of Contents

CRAN-style repository for Omegahat packages

Papers on General Topics

Recently Updated packages

These can (typically) be download from the package-specific site which is<package name>, e.g.

Alternatively, you can download any package (and its previous versions) from the R repository on this site
and specifically
One can use this repository from within R via
  install.packages(packageName, repos = "")
For some packages, there are binaries for Windows. For most others, you will need to specify to download the source package:
  install.packages(packageName, repos = "", type = "source")

Omegahat Packages for R
RFirefox This embeds R within the Firefox Web browser and allows JavaScript code to call R functions and evaluate R expressions. It also allows R functions and code to access JavaScript objects and methods and so be used as event handlers and to generate dynamic content within a Web page. (Gabe Becker and Duncan Temple Lang)
RKML(Version 0.1-0) updates to RKML and annotated examples presented at the JSM 2011 in the session Statistical Graphics in Climate Research.
RGoogleStorage(Version 0.1-0) a package to interface Google's storage API from within R, to upload and download data.
REuPathDB(Version 1.0-0) a package to interface the EuPathDB (Eukaryotic Pathogen Database Resources) Web Services via their REST API. This is machine generated code derived from the WADL files describing the Web service methods.
WADL(Version 0.2-0) a package that can programmatically generate R code to interface REST Web Services that are described by a WADL (Web Application Description Language) document, e.g. the EuPathDB.
RExcelXML Enhancements for reading XLSX files. See also the xlsx package by Adrian Dragulescu.
RGoogleDocsupdate for RGoogleDocs to enhance uploadDoc() and deleteDoc() and subsetting worksheet references, among other things.
REuPathDBa package to interface the EuPathDB (Eukaryotic Pathogen Database Resources) Web Services via their REST API. This is machine generated code derived from the WADL files describing the Web service methods.
WADLa package that can programmatically generate R code to interface REST Web Services that are described by a WADL (Web Application Description Language) document, e.g. the EuPathDB.
SpiderMonkeya package that maps allows R programmers to call JavaScript functions and methods from R and to evaluate JavaScript scripts. This is useful for running JavaScript code that might be of use in R, but also for manipulating Web documents displayed in a Web browser when R is embedded in the browser as an extension. This is possible with an updated version of the RFirefox package to be released very soon.
ROpenOfficeupdate for reading OpenOffice spreadsheets directly in R via the XML content in the .ods files.
GeoIPa package that maps IP addressess and host names to geographic locations - latitude, longitude, region, city, zip code, .... This package is built via RGCCTUFFI to provide dynamic access to existing native code. In addition to the basic functions provided by the C library, the package provides a function for finding the nearest CRAN mirror.
RGCCTUFFIa package that programmatically generates Rffi-based dynamic interfaces to native C routines and data structures without very much human intervention. (You have to call the main function in the package!)
RAutoGenRunTimerun-time support for programmatically generated code via RGCCTranslationUnit and RGCCTUFFI.
Rffian interface to libffi for invoking arbitrary compiled routines from R without the need for writing and compiling wrapper code. Instead, one can describe the routine's input and output types in R and Rffi does the marshalling to invoke the routine and return the value.
RGCCTranslationUnitfunctionality to read C/C++ code and to generate bindings to those routines, classes and data structures.
XMLRPCBug fix release thanks to Paul Shannon.
RCurlBug fix for ftpUpload(), found by Spencer Graves.
Google Earth plugin and RExamples for embedding Google Earth in a Web page and using an R plot (in SVG) to interact with the Google Earth plugin.
RWordpressFacilities for interacting with a blog site.
XMLRPCUpdate to the XMLRPC package for remote procedure calls via HTTP and XML.
RKMLDeviceR graphics device (pure R code) for drawing R plots in KML for display on Google Earth.
RFreetypeA package to read font files, e.g. True Type Font files (.ttf files), and to retrieve font metric information. This can be used by graphics devices (written in R with RGraphicsDevice) to do computations on strings to determine their sizes.
RGoogleTrendsInterface to query and download Google trends data.
RTidyHTMLInterface to libtidy for cleaning up HTML documents to be well-formed
RNYTimesInterface to several New York Times Web services
REST-related packages The following are examples of implementing interfaces to REST APIs as an R client: Related infrastructure packages include
RAmazonDBREST A REST-based interface to Amazon's SimpleDB service for hosting databases and facilitating creating databases, adding and deleting content, and making queries.
RDocbook Code for working with R and Docbook documents. These are external facilities (from R) such as Emacs bindings and shell scripts that facilitate authoring and processing Docbook documents with R code.
XMLRPC A package that provides basic XML-RPC client facilities for accessing remote methods in XML-RPC servers.
RExcelXML Facilities for working with .xlsx documents, i.e. Excel 2007.
RUbigraph A package that provides an interface to Ubigraph, an Open GL application for rendering interactive graphs (node & edges). The connection is via XML-RPC.
RKML A package that provides high-level functions for creating KML displays for Google Earth from within R, using spatial temporal data.
R2GoogleMaps A package that allows R programmers to create HTML and JavaScript code to display content via Google Maps in a Web Browser
RJavaScript A package that converts R code to JavaScript to help creating JavaScript content for Web pages, Flash applications, SVG displays, ...
RAmazonS3 Package that allows R programmers to interact with Amazon's S3 storage server, uploading and downloading and generally managing files.
RRuby Package that allows R programmers to call Ruby from R
Rcrypt Interface to the crypt C routine for encrypting passwords.
RGraphicsDevice Package that allows R programmers to implement R graphics devices entirely within R code
FlashMXML a prototype of an R graphics device that generates Flash/Flex content.
XMLSchema A package for reading and processing XML schema in R
SSOAP A package for R client-side access to SOAP-based Web services
XML Numerous updates for parsing and generating XML content.
RCurl Updates for new versions of libcurl and the many new options.
Rcompression package Interface to zlib and bzip2 libraries for performing in-memory compression and decompression in R. This is useful when receiving or sending contents to remote servers, e.g. Web services, HTTP requests via RCurl.
Sxslt package Updates to the bi-directional interface between R and libxslt. In particular, the use of XSLT from within R is greatly enhanced with much greater control of registering functions, parameters, etc.
SJava Bug fixes and new features for converters. And removed the dependency on an old version of ANTLR.
Rexif An R package for reading camera information and other meta-data from images taken with digital cameras.
CGIwithR Extensions to David Firth's original CGIwithR package. I am now maintaining that package after David's good work.
Aspell An interface to the GNU aspell library for checking the spelling of words and entire documents.
RDCOMEvents This package provides a facility to listen for DCOM events from applications such as Excel and Word and others and to process them with R functions.
Combinations This package is used for generating the combinations for choosing r items from a set of n items but does it in C code. When n gets large, the package provides a mechanism for dealing with each combination as it is generated so that one does not have to hold the entire collection around and operate on them after creating the entire collection. This makes computations feasible for very large numbers of combinations. It does not necessarily make them fast! The package is also a good example of the basics of calling R functions from C code. It also illustrates aspects of adapting code for a stand-alone application to be used within an interactive language like R/S-Plus, Python, Perl or Matlab/Octave.
RMatlab An interface between R and Matlab. One can call R functions from Matlab code, and Matlab functions from R code using the syntax of the local programming language.
RCurl A package for performing HTTP requests using the C-level cURL library. This is a very flexible, customizable way to handle HTTP-based communications from within R in a higher-level and more extensive way than is directly available via socket connections. This is used by the SSOAP package and a forthcoming package for HTML form submissions.
Rstem A package for performing word stemming for use in text analysis. This is an interface to Martin Porter's Snowball generated C code for performing stemming. The package has support for several languages and is exensible.
IDocs An experimental package for interactive documents created in XML and rendered using viewHtml in RGtkViewers. This connects the different plugins in a document and across documents using nested environments and a stack that pushes and pops environments as they are entered and exited.
XSL files for Omegahat This is a collection of support XSL, DTD and CSS files for Omegahat. The suite allows thefiles to be used via catalogs.
SASXML An experimental package for reading XML data in the Open Information Model (OIM) format, e.g. SAS XML files. This might be generalized to have functionality for reading PMML (Predictive Model Markup Language).
RDCOMServer A rich, extensible and flexible mechanism for defining and implementing COM classes and objects entirely within the S language. This allows one to make S functions and objects accessible to other applications and programming languages without people having to know the S language. This provids not just access to the R evaluator, but arbitrary S objects.
RDCOMClient A mechanism that allows S users to create and use COM objects directly within an R session.
RGnomePrint An R interface to libgnomeprint, the Gnome printing library that provides facilities for controlling printing from Gtk widgets, previewing, and generating Postscript, Windows metafiles (and potentially PDF.)
GccTranslationUnit A Python module for obtaining reflectance information from C/C++ source code. This can be used to programmatically generate S bindings to arbitrary routines, classes and data structures in native code and also build the registration table for routines to be accessed from R. We can also use this to compute on C/C++ code, e.g. determining call graphs, free variables.
SWinTypeLibs Facilities for reading type information from DLLs, type libraries or (D)COM objects directly in R. This can be used to programmatically generate interfaces to C/C++ code.
SWinRegistry Read and write access to the Windows registry. For Windows platform only.
S language binding to the gtk+extra library. Access to the widgets in the gtk+extra library, i.e. the data-grid/sheet display, directory list, icon list and file list.
S language binding to the Gdk pixbuf library. Access to the Pixbuf library for reading images into R to be used in RGtk and associated packages.
S language binding to the Glade library. S language facilities for instantiating GUIs constructed interactively via the glade GUI builder. This can register S functions or expressions, or C routines specified as callbacks in the glade interface.
A plugin event-loop for R. A facility that allows one to dynamically specify a new event loop to use within an R session. This allows one to use Gtk or Tk event loop to drive R. One can write methods for other toolkits such as Carbon, Qt, etc.
S language binding generator for Gtk-based libraries. A package that creates S and C code to interface to arbitrary Gtk-based C libraries and Gtk classes such as Gtk itself, Zvt, gtk+-extra, gtkhtml, embedded Mozilla, etc.
R/SPlus XML Parsing package Parse and create XML documents within the S language.
RGtk package Bindings for programming GUIs using Gtk and extended widget sets.
An R-XLisp interface Interface between R and XLisp allowing R code to call XLisp functions.
RObjectTables package Framework for user-defined search path elements, alternative automatic serialization, external variables, etc.
RGtkViewers package A collection of GUI tools for viewing different information, built using RGtk.
RSMethods Formal S classes and methods for R.
RSPython a bi-directional interface allowing calling R functions from Python code and accessing Python objects, classes and functions from R sessions.
RSPerl a bi-directional interface allowing calling R functions from Perl code and accessing Perl objects, classes and routies from R sessions.
RGnumeric an R plugin for Gnumeric that allows Gnumeric users to call R functions from within a spreadsheet, and for R programmers to access Gnumeric sheets and their contents from within R functions.
R embedded in Xalan, the XSL translatorUse R to generate output in and control transformation of XML documents using XSL functions
R Plugin for Netscape A plugin for Netscape that allows one to call R from JavaScript and JavaScript from R.
These are just some of a complete collection of Omegahat packages for R and S-Plus.

Omega is a joint project with the goal of providing a variety of open-source software for statistical applications. The Omega project began in July, 1998, with discussions among designers responsible for three current statistical languages (S, R, and Lisp-Stat), with the idea of working together on new directions with special emphasis on web-based software, Java, the Java virtual machine, and distributed computing. We encourage participation by anyone wanting to extend computing capabilities in one of the existing languages, to those interested in distributed or web-based statistical software, and to those interested in the design of new statistical languages.

Software is being developed for the project; we refer to it as the omegahat software, to emphasize in typical statistical terminology that we are starting on a process of approximating the ideal software through many iterations, among other reasons.

Follow the pointers below to find out more about the omegahat software.


Related Software

Some of the many areas in which Java packages may be of value to statistics include:

In many of these areas, there have been questions about the speed attainable by Java. Investigating such questions is part of what we want to do.


Specific goals and procedures are still being developed, but the current policy includes the following.


The current core group of Omega developers includes:

Douglas Bates John Chambers Di Cook
Peter Dalgaard Robert Gentleman Kurt Hornik
Ross Ihaka Friedrich Leisch Thomas Lumley
Martin Mächler Guido Masarotto Paul Murrell
Balasubramanian Narasimhan Brian Ripley Günther Sawitzki
Duncan Temple Lang Luke Tierney Bill Venables

Participation in the general and special-purpose software work of the Omega project is open to anyone interested in our goals. The mailing lists are a good place to start; in particular is a list for discussion of the general development of software for the project. The success of the Omega project is highly dependent on the involvement of a wide range of participants in many different areas. We can all benefit.

The Omega Project Umbrella

As well as developing software ourselves, the project also hopes to support other development efforts. To this end, Doug Bates has generously allowed his machine to be used for distributing code for different projects. These projects include. More general details are also available.