Multiple assignment in R?

262 Views Asked by At

In python you can do something like this:

x,y = 1,2 

or

x,y = function_that_returns_two_elements()

I was trying to do something similar in R but found no solution. Is it possible?

2

There are 2 best solutions below

0
akrun On

We can use multiple assignment operator (%=%) for this

library(collapse)
c("x", "y") %=% c(1,2)

-output

> x
[1] 1
> y
[1] 2

If it should be unquoted

rm(x, y) # remove the objects from the global environment
.c(x, y) %=% c(1, 2)

-output

> x
[1] 1
> y
[1] 2
0
zephryl On

The zeallot package offers an unpacking operator, %<-%

library(zeallot)

z <- list(1:3, 6:9)

c(a, b) %<-% z

a
# 1 2 3

b 
# 6 7 8 9