2013-03-02 12 views

Odpowiedz

11

Można to zrobić w ramach listy używając [<-

e <- list() 

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

lub w data.table wykorzystaniem :=

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

Z obu tych list(), można następnie wykorzystać list2env, aby skopiować do środowiska globalnego (lub innego)

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

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

Ale nie w ogólnym użyciu tworzenie obiektów w środowisku.

+0

Nice ... nie był świadomy 'list2env' - choć widzę, że jest raczej wykorzystywany niż używany. – thelatemail

+0

Właściwie to nie użyję 'list2env()' - wydaje się raczej hackish i nienaturalne w R - ale odpowiedź jest pouczająca i wszechstronna mimo wszystko. Nauczyłem się także korzystać z list! Dziękuję Ci! – brandizzi

3

może to wygląda głupio, ale chciałbym to zrobić:

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

$b 
[1] 2 

$c 
[1] 3