问题
In Python, one can do this:
>>> a, b, c = (1, 2, 3)
>>> a
1
>>> b
2
>>> c
3
Is there a way to do it in R, as below?
> a, b, c = c(1, 2, 3)
回答1:
You can do this within a list using [<-
e <- list()
e[c('a','b','c')] <- list(1,2,3)
Or within a data.table using :=
library(data.table)
DT <- data.table()
DT[, c('a','b','c') := list(1,2,3)]
With both of these (lists), you could then use list2env
to copy to the global (or some other) environment
list2env(e, envir = parent.frame())
a
## 1
b
## 2
c
## 3
But not in general usage creating objects in an environment.
回答2:
maybe it looks stupid, but I would do this :
v <- list(a=0,b=0,c=0)
v[] <- c(1,2,3)
v
$a
[1] 1
$b
[1] 2
$c
[1] 3
来源:https://stackoverflow.com/questions/15170394/python-like-unpacking-of-numeric-value-in-r