2015-04-12 86 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