pryr v0.1.2

0

Monthly downloads

0th

Percentile

by Hadley Wickham

Tools for Computing on the Language

Useful tools to pry back the covers of R and understand the language at a deeper level.

Readme

pryr (rhymes with pry bar)

Build Status CRAN_Status_Badge Coverage Status

pryr provides tools to pry back the surface of R and dig into the details. It has been developed in conjunction with "Advanced R programming" to make it easier to understand what's going on in R.

Install it from CRAN with install.packages("pryr").

Tools

pryr includes tools to:

  • Make it easier to understand the internal implementation of:

    • promises: uneval(), is_promise(), promise_info()
    • scoping and environments: where(), rls(), parenv()
    • closures: unenclose()
    • calls and expressions: call_tree()
    • primitive types: typenames()
    • copy-on-modify: address(), track_copy()
  • Inspect and understand R's OO systems:

    • Determine which OO system an object belongs to: otype()
    • Determine which OO system a function belongs to: ftype()
  • Make it easier to compute on the language:

    • Alternative ways to create functions: make_function(), f()
    • A version of substitute that uses regular evaluation, substitute_q(), and one that will substitute objects in the global environment, subs()
    • Tools to modify language objects: modify_lang()
    • dots() and named_dots() to get unevaluated ...
    • Partial function evaluation: partial()
    • Find all functions matching some criteria: find_funs()
  • To use existing R tools more easily:

    • %<d-% and %<a-% for creating delayed or active bindings
    • %<c-% for creating constants (locked bindings)
    • rebind as a more user friendly version of <<-

Functions in pryr

Name Description
as.envlist Convert a list of environments to an envlist object.
f A compact syntax for anonymous functions.
show_c_source Find C source code for internal R functions
%<a-% Create an active binding.
compose Compose multiple functions
is_promise Promise info
mem_used How much memory is currently used by R?
unenclose Unenclose a closure.
otype Determine object type.
enclosing_env Find the environment that encloses of a function.
find_funs Find functions matching criteria.
rebind Rebind an existing name.
is_active_binding Active binding info
make_call Make and evaluate calls.
sexp_type Inspect internal attributes of R objects.
names_c Extract function table from names.c from R subversion repository.
bytes Print the byte-wise representation of a value
substitute_q A version of substitute that evaluates its first argument.
find_uses Find all functions in that call supplied functions.
standardise_call Standardise a function call
ftype Determine function type.
uneval Capture the call associated with a promise.
mem_change Determine change in memory from running code
rls Recursive ls.
parenv Get parent/ancestor environment
method_from_call Given a function class, find correspoding S4 method
%<c-% Create a constant (locked) binding.
call_tree Display a call (or expression) as a tree.
make_function Make a function from its components.
modify_lang Recursively modify a language object
parenvs Given an environment or object, return an envlist of its parent environments.
object_size Compute the size of an object.
dots Capture unevaluated dots.
fget Find a function with specified name.
is_s3_generic Determine if a function is an S3 generic or S3 method.
modify_call Modify the arguments of a call.
partial Partial apply a function, filling in some arguments.
track_copy Track if an object is copied
where Find where a name is defined.
parent_promise Find the parent (first) promise.
%<d-% Create an delayed binding.
print.envlist Print an envlist
subs A version of substitute that works in the global environment.
explicit Tools for making promises explicit
No Results!

Last month downloads

Details

License GPL-2
URL https://github.com/hadley/pryr
BugReports https://github.com/hadley/pryr/issues
LinkingTo Rcpp
NeedsCompilation yes
Packaged 2015-06-19 11:38:23 UTC; hadley
Repository CRAN
Date/Publication 2015-06-20 00:35:21

Include our badge in your README

[![Rdoc](http://www.rdocumentation.org/badges/version/pryr)](http://www.rdocumentation.org/packages/pryr)