Duncan Lang

Duncan Lang

8 packages on CRAN

4 packages on GitHub

2 packages on Bioconductor

RCurl

cran
99th

Percentile

A wrapper for 'libcurl' <http://curl.haxx.se/libcurl/> Provides functions to allow one to compose general HTTP requests and provides convenient functions to fetch URIs, get & post forms, etc. and process the results returned by the Web server. This provides a great deal of control over the HTTP/FTP/... connection and the form of the request while providing a higher-level interface than is available just using R socket connections. Additionally, the underlying implementation is robust and extensive, supporting FTP/FTPS/TFTP (uploads and downloads), SSL/HTTPS, telnet, dict, ldap, and also supports cookies, redirects, authentication, etc.

RJSONIO

cran
98th

Percentile

This is a package that allows conversion to and from data in Javascript object notation (JSON) format. This allows R objects to be inserted into Javascript/ECMAScript/ActionScript code and allows R programmers to read and convert JSON content to R objects. This is an alternative to rjson package. Originally, that was too slow for converting large R objects to JSON and was not extensible. rjson's performance is now similar to this package, and perhaps slightly faster in some cases. This package uses methods and is readily extensible by defining methods for different classes, vectorized operations, and C code and callbacks to R functions for deserializing JSON objects to R. The two packages intentionally share the same basic interface. This package (RJSONIO) has many additional options to allow customizing the generation and processing of JSON content. This package uses libjson rather than implementing yet another JSON parser. The aim is to support other general projects by building on their work, providing feedback and benefit from their ongoing development.

RGoogleDocs

github
15th

Percentile

This package provides an initial, elementary interface to Google's Document API for word processing and spreadsheet documents. One needs a Google login and password and then one can list, download, delete and upload documents to the Google account. There are facilities for accessing the contents of spreadsheets and querying for elements such as images, links, comments and section titles of word processing documents.

Rllvm

github
15th

Percentile

This package is currently an interface to some of the functionality in the llvm toolkit for programmaticall constructing native code. This allows us to build "compilers" in R and use llvm's optmization and JIT techniques to improve the code we generate and then turn it into machine code. This is currently not a compiler. There are examples that illustrate how to generate code to create native functions that are equivalent to some simple R functions. The goal is to build on this and create a compiler, hopefully building on the framework that Luke Tierney has created in his compiler package (see http://www.cs.uiowa.edu/~luke/R/compiler/). This is in the RLLVCompile package. The speed up we achieve compiling R code in our examples illustrate that we can significantly outperform the R interpreter and also can outperform some of R's vectorized code by rearranging the computations, e.g. fusing loops, avoiding memory usage.

RLLVMCompile

github
15th

Percentile

A prototype for a compiler for R code that uses LLVM to generate machine code.

TypeInfo

bioconductor
15th

Percentile

A prototype for a mechanism for specifying the types of parameters and the return value for an R function. This is meta-information that can be used to generate stubs for servers and various interfaces to these functions. Additionally, the arguments in a call to a typed function can be validated using the type specifications. We allow types to be specified as either i) by class name using either inheritance - is(x, className), or strict instance of - class(x) %in% className, or ii) a dynamic test given as an R expression which is evaluated at run-time. More precise information and interesting tests can be done via ii), but it is harder to use this information as meta-data as it requires more effort to interpret it and it is of course run-time information. It is typically more meaningful.

jsonlite

cran
99.5th

Percentile

A fast JSON parser and generator optimized for statistical data and the web. Started out as a fork of 'RJSONIO', but has been completely rewritten in recent versions. The package offers flexible, robust, high performance tools for working with JSON in R and is particularly powerful for building pipelines and interacting with a web API. The implementation is based on the mapping described in the vignette (Ooms, 2014). In addition to converting JSON data from/to R objects, 'jsonlite' contains functions to stream, validate, and prettify JSON data. The unit tests included with the package verify that all edge cases are encoded and decoded consistently for use with dynamic data in systems and applications.

XML

cran
99th

Percentile

Many approaches for both reading and creating XML (and HTML) documents (including DTDs), both local and accessible via HTTP or FTP. Also offers access to an 'XPath' "interpreter".

RGtk2

cran
96th

Percentile

Facilities in the R language for programming graphical interfaces using Gtk, the Gimp Tool Kit.

ROAuth

cran
93th

Percentile

Provides an interface to the OAuth 1.0 specification allowing users to authenticate via OAuth to the server of their choice.

rggobi

cran
90th

Percentile

A command-line interface to 'GGobi', an interactive and dynamic graphics package. 'Rggobi' complements the graphical user interface of 'GGobi' providing a way to fluidly transition between analysis and exploration, as well as automating common tasks.

84th

Percentile

Tools for analyzing R expressions or blocks of code and determining the dependencies between them. It focuses on R scripts, but can be used on the bodies of functions. There are many facilities including the ability to summarize or get a high-level view of code, determining dependencies between variables, code improvement suggestions.

RMendeley

github
16th

Percentile

A programmatic interface to the Web Service methods provided by the Mendeley open science project.

SJava

bioconductor
15th

Percentile

An interface from R to Java to create and call Java objects and methods.