When a function returns multiple non-primitive types these are usually returned wrapped in a list. You then need to index into the list to extract the values. Using the bind function in this package, together with the %<-% operator, you can instead bind such values to local variables. The simplest usage is to just give bind the variables you want to bind to values and then assign them using %<-%:
f <- function(x, y) c(x, y)
g <- function(x, y) list(x, y)
bind(a, b) %<-% f(1, 2)
bind(a, b) %<-% g(1, 2)
Values are just bound to local variables in the same order as they are given by the expression on the right-hand-side of %<-%. If there are more values than variables, the remaining values are just discarded. For example,
bind(a) %<-% f(1, 2)
just binds a to 1 and ignores 2.
It is also possible to specify expressions in a binding. To do this, you must provide a variable to be assigned to, as for the positional variables, and an expression. This expression is evaluated in the context of the value the bind expression receives from the right-hand side of %<-% and the scope where the bind function is called. For example
bind(a = 2*x, b = 3*y) %<-% list(x = 2, y = 4)
will leave a bound to 4 (2*2) and b bound to 12 (3*4), and
a <- 2
bind(b = a*x + 3*y) %<-% list(x = 2, y = 4)
will leave b assigned to 16.
If you combine positional and expression specifications the positional arguments will always match the position in the call to bind. So in the code below, both a and b will be assigned the value 4
bind(a = y, b) %<-% list(x = 2, y = 4)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.