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 中做类似的事情,但没有找到解决方案。是否可以?
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)
%=%为此,我们可以使用多个赋值运算符 ( )
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)