R 中的多重赋值?

Brz*_*nia 6 r multiple-assignment

在Python中你可以做这样的事情:

x,y = 1,2 
Run Code Online (Sandbox Code Playgroud)

或者

x,y = function_that_returns_two_elements()
Run Code Online (Sandbox Code Playgroud)

我试图在 R 中做类似的事情,但没有找到解决方案。是否可以?

zep*_*ryl 5

zeallot包提供一个拆包操作符,%<-%

library(zeallot)

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

c(a, b) %<-% z

a
# 1 2 3

b 
# 6 7 8 9
Run Code Online (Sandbox Code Playgroud)


akr*_*run 2

%=%为此,我们可以使用多个赋值运算符 ( )

library(collapse)
c("x", "y") %=% c(1,2)
Run Code Online (Sandbox Code Playgroud)

-输出

> x
[1] 1
> y
[1] 2
Run Code Online (Sandbox Code Playgroud)

如果不加引号

rm(x, y) # remove the objects from the global environment
.c(x, y) %=% c(1, 2)
Run Code Online (Sandbox Code Playgroud)

-输出

> x
[1] 1
> y
[1] 2
Run Code Online (Sandbox Code Playgroud)