中的R数值的类Python拆包[复制](Python-like unpacking of numer

2019-08-17 06:09发布

这个问题已经在这里有一个答案:

  • 分配上LHS多个新变量一行 14个回答
  • 我可以指定在批处理变量? [重复] 2个答案

在Python中,可以这样做:

>>> a, b, c = (1, 2, 3)
>>> a
1
>>> b
2
>>> c
3

有没有办法做到这一点在R,如下面?

> a, b, c = c(1, 2, 3)

Answer 1:

您可以使用列表内做到这一点[<-

e <- list()

e[c('a','b','c')] <- list(1,2,3)

或data.table内使用:=

library(data.table)
DT <- data.table()
DT[, c('a','b','c') := list(1,2,3)]

与这两个(列表),你可以再使用list2env复制到全球(或其他)环境

list2env(e, envir = parent.frame())

a
## 1
b
## 2
c
## 3

但不是一般的使用而造成的环境中的物体。



Answer 2:

也许它看起来愚蠢,但我会做到这一点:

v <- list(a=0,b=0,c=0)
v[] <- c(1,2,3)
 v
$a
[1] 1

$b
[1] 2

$c
[1] 3


文章来源: Python-like unpacking of numeric value in R [duplicate]