lobstr v1.1.0

0

Monthly downloads

0th

Percentile

Visualize R Data Structures with Trees

A set of tools for inspecting and understanding R data structures inspired by str(). Includes ast() for visualizing abstract syntax trees, ref() for showing shared references, cst() for showing call stack trees, and obj_size() for computing object sizes.

Readme

lobstr

CRAN
status Travis-CI Build
Status Coverage
status

lobstr provides tools in the same vein as str(), which allow you to dig into the detail of an object.

Installation

Install the released version of lobstr from CRAN:

install.packages("lobstr")

You can install the development version with:

# install.packages("devtools")
devtools::install_github("r-lib/lobstr")

Example

Abstract syntax trees

ast() draws the abstract syntax tree of R expressions:

ast(a + b + c)
#> █─`+` 
#> ├─█─`+` 
#> │ ├─a 
#> │ └─b 
#> └─c

ast(function(x = 1) {
  if (x > 0) print("Hi!")
})
#> █─`function` 
#> ├─█─x = 1 
#> ├─█─`{` 
#> │ └─█─`if` 
#> │   ├─█─`>` 
#> │   │ ├─x 
#> │   │ └─0 
#> │   └─█─print 
#> │     └─"Hi!" 
#> └─<inline srcref>

References

ref() shows hows objects can be shared across data structures by digging into the underlying __ref__erences:

x <- 1:1e6
y <- list(x, x, x)
ref(y)
#> █ [1:0x7fa42b6a9598] <list> 
#> ├─[2:0x7fa428ae7c88] <int> 
#> ├─[2:0x7fa428ae7c88] 
#> └─[2:0x7fa428ae7c88]

e <- rlang::env()
e$self <- e
ref(e)
#> █ [1:0x7fa42d981790] <env> 
#> └─self = [1:0x7fa42d981790]

A related tool is obj_size(), which computes the size of an object taking these shared references into account:

obj_size(x)
#> 680 B
obj_size(y)
#> 760 B

Call stack trees

cst() shows how frames on the call stack are connected:

f <- function(x) g(x)
g <- function(x) h(x)
h <- function(x) x
f(cst())
#>     █
#>  1. ├─global::f(cst())
#>  2. │ └─global::g(x)
#>  3. │   └─global::h(x)
#>  4. └─lobstr::cst()

Functions in lobstr

Name Description
obj_addr Find memory location of objects and their children.
cst Call stack tree
ast Display the abstract syntax tree
ref Display tree of references
obj_size Calculate the size of an object.
sxp Inspect an object
mem_used How much memory is currently used by R?
No Results!

Last month downloads

Details

License GPL-3
URL https://github.com/r-lib/lobstr
BugReports https://github.com/r-lib/lobstr/issues
LinkingTo Rcpp
Encoding UTF-8
LazyData true
RoxygenNote 6.1.1
NeedsCompilation yes
Packaged 2019-06-19 20:40:32 UTC; hadley
Repository CRAN
Date/Publication 2019-06-19 22:00:23 UTC

Include our badge in your README

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