The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
lobstr provides tools in the same vein as str()
, which
allow you to dig into the detail of an object.
Install the released version of lobstr from CRAN:
install.packages("lobstr")
You can install the development version with:
# install.packages("devtools")
::install_github("r-lib/lobstr") devtools
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>
ref()
shows hows objects can be shared across data
structures by digging into the underlying __ref__erences:
<- 1:1e6
x <- list(x, x, x)
y ref(y)
#> █ [1:0x7fed114eaea8] <list>
#> ├─[2:0x7fed21f373b8] <int>
#> ├─[2:0x7fed21f373b8]
#> └─[2:0x7fed21f373b8]
<- rlang::env()
e $self <- e
eref(e)
#> █ [1:0x7fecf1856f00] <env>
#> └─self = [1:0x7fecf1856f00]
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
cst()
shows how frames on the call stack are
connected:
<- function(x) g(x)
f <- function(x) h(x)
g <- function(x) x
h f(cst())
#> ▆
#> 1. ├─global f(cst())
#> 2. │ └─global g(x)
#> 3. │ └─global h(x)
#> 4. └─lobstr::cst()
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.