6

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?

Brzoskwinia
  • 371
  • 2
  • 11

2 Answers2

5

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
zephryl
  • 14,633
  • 3
  • 11
  • 30
3

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
akrun
  • 874,273
  • 37
  • 540
  • 662