R 中的多个赋值?[复制]

Multiple assignment in R? [duplicate]

提问人:Brzoskwinia 提问时间:3/12/2022 更新时间:3/12/2022 访问量:233

问:

在 python 中,您可以执行如下操作:

x,y = 1,2 

x,y = function_that_returns_two_elements()

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

r 多重赋值

评论

1赞 Bill O'Brien 3/12/2022
为什么不直接将函数的返回值设置为长度为 2 的列表呢?

答:

2赞 akrun 3/12/2022 #1

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

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

-输出

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

如果应该不加引号

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

-输出

> x
[1] 1
> y
[1] 2
5赞 zephryl 3/12/2022 #2

zeallot 包提供了一个开箱操作员,%<-%

library(zeallot)

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

c(a, b) %<-% z

a
# 1 2 3

b 
# 6 7 8 9