R |用变量替换环境名称
问题描述:
一个新手问题:我想写一个通用函数,它将变量保存在一个新的环境中。我想给作为参数的环境的名称。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)
你能帮我吗?非常感谢!
答
assign()
的第一个参数应该是一个字符值,而不是一个符号。而envir=
参数应该是一个适当的环境,而不是一个字符值。如果您想要获取给定变量名称的字符值的变量值,请使用get()
。这应该工作
assign("a", 1, envir=get(env_n))
但这是一个非常不寻常的操作为“新手”将使用。我会后退一步,看看你在做什么,看看是否没有更像“R-like”的方式去做事情。
我完全同意MrFlick。这些概念并不容易理解......通过类推,我们不会想到在英语101课程中使用“符号学”这样的词。 (但如果您对基本知识足够了解,请参阅http://adv-r.had.co.nz/Expressions.html) –
太棒了!我得到它与您的帮助!非常感谢你! – user4773362
最后一个问题:如何使用与env_n等效的“my.env $ a”(读取赋值)? – user4773362