Duncan Lang

Duncan Lang

9 packages on CRAN

4 packages on GitHub

2 packages on Bioconductor

RCurl

cran
99.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
99.99th

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.

TypeInfo

bioconductor
99.99th

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.

RGoogleDocs

github
99.99th

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
99.99th

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
99.99th

Percentile

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

99.99th

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.

jsonlite

cran
99.99th

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.

nimble

cran
99.99th

Percentile

A system for writing hierarchical statistical models largely compatible with 'BUGS' and 'JAGS', writing nimbleFunctions to operate models and do basic R-style math, and compiling both models and nimbleFunctions via custom-generated C++. 'NIMBLE' includes default methods for MCMC, particle filtering, Monte Carlo Expectation Maximization, and some other tools. The nimbleFunction system makes it easy to do things like implement new MCMC samplers from R, customize the assignment of samplers to different parts of a model from R, and compile the new samplers automatically via C++ alongside the samplers 'NIMBLE' provides. 'NIMBLE' extends the 'BUGS'/'JAGS' language by making it extensible: New distributions and functions can be added, including as calls to external compiled code. Although most people think of MCMC as the main goal of the 'BUGS'/'JAGS' language for writing models, one can use 'NIMBLE' for writing arbitrary other kinds of model-generic algorithms as well. A full User Manual is available at <https://r-nimble.org>.

rggobi

cran
99.99th

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.

RGtk2

cran
99.99th

Percentile

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

ROAuth

cran
99.99th

Percentile

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

SJava

bioconductor
99.99th

Percentile

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

RMendeley

github
99.99th

Percentile

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

XML

cran
99.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".