2015-04-12 240 views
0

一個新手問題:我想寫一個通用函數,它將變量保存在一個新的環境中。我想給作爲參數的環境的名稱。R |用變量替換環境名稱

#create environment 
my.env <- new.env() 
#variable to store the name of the environment 
env_n<-"my.env" 
# now safe a variable a with value 1 to my.env 
my.env$a=1 #working 

但我想有我想要使用的存儲環境的名稱的變量,它工作在很多情況下,有一個通用的解決方案。例如:

#Things I tried 
env_n$a=1 #not working 
assign(a, 1, envir=env_n) 

你能幫我嗎?非常感謝!

回答

1

assign()的第一個參數應該是一個字符值,而不是一個符號。而envir=參數應該是一個適當的環境,而不是一個字符值。如果您想要獲取給定變量名稱的字符值的變量值,請使用get()。這應該工作

assign("a", 1, envir=get(env_n)) 

但這是一個非常不尋常的操作爲「新手」將使用。我會後退一步,看看你在做什麼,看看是否沒有更像「R-like」的方式去做事情。

+0

我完全同意MrFlick。這些概念並不容易理解......通過類推,我們不會想到在英語101課程中使用「符號學」這樣的詞。 (但如果您對基本知識足夠了解,請參閱http://adv-r.had.co.nz/Expressions.html) –

+0

太棒了!我得到它與您的幫助!非常感謝你! – user4773362

+0

最後一個問題:如何使用與env_n等效的「my.env $ a」(讀取賦值)? – user4773362