2013-12-18 19 views
3

如果您有list,但希望列表中的每個元素都是它在全局環境中的獨立元素,例如名稱並在全局環境中放置列表中的每個元素

alist <- list(c(1,2), c(3,4)) 
# into 
a <- c(1,2) 
b <- c(3,4) 

有沒有簡單的方法呢?一些形式的下面或許:

mapply(function(x,y){ y <- x }, alist, list("a","b"), SIMPLIFY = FALSE) 
+0

你想'assign'而不是'<-'。 – Thomas

+3

你真的不應該這樣做。 – Roland

+0

感謝您的回答,@羅蘭德是否僅僅是因爲最佳實踐意味着我應該繼續在列表格式下工作,還是有其他原因? – user1320502

回答

10

使用list2env

alist <- list(a=c(1,2), b=c(3,4)) # naming list elements 
list2env(alist, envir = .GlobalEnv) 
2

如果你的元素沒有被命名,那麼你可以做mapply與分配:

mapply(assign, list("a","b"), alist, MoreArgs=list(envir=.GlobalEnv)) 
> ls() 
## [1] "a"  "alist" "b" 

但是羅蘭說。

相關問題