Lookup R function definitions, including compiled code, S3 and S4 methods.
[](https://codecov.io/github/jimh ester/lookup?branch=master)
# install.packages("devtools")
devtools::install_github("jimhester/lookup")
lookup makes heavy use of the GitHub API, which has a rate limit of 60 requests per hour when unauthenticated. You can create a Personal access token with no scope, which will increase your limit to 5000 requests per hour.
Once you have generated a token, add it to your ~/.Renviron
file or shell
startup file and it will be automatically used for further requests.
GITHUB_PAT=7d8d0436835d1baXYZ1234
gh::gh("/rate_limit")
can be used to query your current usage and limits.
lookup can be used as a complete replacement for function printing by attaching
the package. To make this the default simply add this to your .Rprofile
.
if (interactive()) {
library(lookup)
}
If a base R function is printed that calls compiled code the code is lookup up
using the R git mirror. If a CRAN package
has compiled code it is looked up on the CRAN git
mirror. If a package is installed with
devtools::install_github()
or devtools::install()
the remote or local
repository location is searched for the code.
This has been tested to work with .Internal
, .External
, .C
, .Call
and
Rcpp calls.
This package uses a number of heuristics to find function definitions. This means it can fail in some cases, if you find a function that is not lookup up properly, please open an issue.
- R Core and Community For promoting open source software to make this possible.
- Winston Chang For running the Git mirror of the R Source.
- Gábor Csárdi For the gh package, the CRAN git mirror and inspiration and code for handling pagination and busy updating.
- Jenny Bryan For codifying the process of accessing the R source, which was my main inspiration and motivation for starting this package.